CentOS7非root用户离线安装Docker及常见问题总结、各种操作系统docker桌面程序下载地址
环境说明
1、安装用户有sudo权限
2、本文讲docker组件安装,不是桌面程序安装
3、本文讲离线安装,不是在线安装
4、目标机器是内网机器,与外部网络不连通
下载
1、下载离线安装包,并上传到$HOME/basic-tool 目录
下载地址:Index of linux/static/stable/x86_64/
我下的这个:
https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz
理由:rpm的安装起来反而麻烦,缺这个库缺那个库的
# Docker 的扩展功能包(在离线安装包下载地址页面)
https://download.docker.com/linux/static/stable/x86_64/docker-rootless-extras-27.5.1.tgz
说明:"rootless" 通常指的是不需要 root 权限就能运行 Docker 的特性
安装
1、解压
cd $HOME/basic-tooltar -xvf docker-27.5.1.tgz
2、安装
sudo cp docker/* /usr/bin/
3、注册docker.service服务
# 用vi就行了,vim用的刚装的机器上都没这命令vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4、添加镜像加速(此步可选)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"oom-score-adjust": -1000,"log-driver": "json-file","log-opts": {"max-size": "20m","max-file": "3"},"max-concurrent-downloads": 10,"max-concurrent-uploads": 10,"registry-mirrors": ["https://sto5ef1n.mirror.aliyuncs.com"],"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]
}
EOF
5、创建 Docker 组并添加(当前)用户
# 添加用户组 docker
sudo groupadd docker# 添加用户
sudo usermod -aG docker $USER
# 等价于
# sudo usermod -aG docker xxx(当前用户名)#更新用户组
newgrp docker
6、启动 Docker 服务
sudo chmod 777 /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker
7、验证安装
systemctl status docker
docker -v
docker info
常见问题
1、执行docker命令时报权限错
[zhaoXXXXXX@GZXXX-PM153161 basic-tool]$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json":
dial unix /var/run/docker.sock: connect: permission denied
解决:更新用户组
#更新用户组
newgrp docker
2、启动docker守护进程报错
[zhao****@GZ****-PM153160 ~]$ sudo systemctl restart docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
解决:配置文件语法问题。删除解析不了的配置
查看报错详细日志(一般能看到提示了配置文件具体哪行的语法错,不同的版本支持的配置参数有差异):
# 查看 docker 守护进程日志
journalctl -u docker.service
3、登陆(私有)镜像仓库报错
[zhao****@GZ****-PM153160 ~]$ docker login 10.130.***.106:30089
Username: admin
Password:
Error response from daemon: Get "https://10.130.***.106:30089/v2/": tls: failed to verify certificate: x509: cannot validate certificate for 10.130.***.106 because it doesn't contain any IP SANs
解决:换成域名
[zhao***@GZ***-PM153160 ~]$ docker login harbor.***.com:30089
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /home/zhaozheng/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-storesLogin Succeeded
总结
因大部分文章都不完整,不是少这步就是少那步,本文章是作者看了网上多个文章后取其精华并完善整理而来。作者此贴已亲测并验证通过,请放心参考!
附件
附件一:创建linux用户
# 创建用户组(上面有执行过)
# groupadd docker -g 200# 创建 docker 用户 第一个docker是分组名,第二个docker是用户名
sudo useradd -g docker docker
sudo usermod -aG docker docker# 修改 docker 用户密码
passwd docker
附件二:将docker添加到sudo用户列表
# 没错这里就是vi和sudo两命令连在一起,中间没有空格
visudo
# 最后一行添加,保存即刻生效
docker ALL=(ALL) NOPASSWD:ALL
附件三:docker desktop下载
docker桌面程序下载地址
https://www.docker.com/
附件四:rpm相关包下载地址
本文不需要用
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-26.1.4-1.el7.x86_64.rpm
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.33-3.1.el7.x86_64.rpm
# policycoreutils-python安装(装docker-ce-selinux的依赖,本文不需要用)
policycoreutils-python-2.5-34.el7.x86_64.rpm
附件五:不采用rpm包的理由
rpm的安装起来缺这个库缺那个库的
[zhaoXXXXX@GZXXX-PM153161 basic-tool]$ sudo rpm -ivh containerd.io-1.6.33-3.1.el7.x86_64.rpm
warning: containerd.io-1.6.33-3.1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
error: Failed dependencies:container-selinux >= 2:2.74 is needed by containerd.io-1.6.33-3.1.el7.x86_64
[zhaoXXXXX@GZXXX-PM153161 basic-tool]$ sudo rpm -ivh docker-ce-20.10.24-3.el7.x86_64.rpm
warning: docker-ce-20.10.24-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
error: Failed dependencies:container-selinux >= 2:2.74 is needed by docker-ce-3:20.10.24-3.el7.x86_64containerd.io >= 1.4.1 is needed by docker-ce-3:20.10.24-3.el7.x86_64docker-ce-cli is needed by docker-ce-3:20.10.24-3.el7.x86_64docker-ce-rootless-extras is needed by docker-ce-3:20.10.24-3.el7.x86_64libcgroup is needed by docker-ce-3:20.10.24-3.el7.x86_64
[zhaoXXXXX@GZXXX-PM153161 basic-tool]$ sudo rpm -ivh docker-ce-rootless-extras-20.10.24-3.el7.x86_64.rpm
warning: docker-ce-rootless-extras-20.10.24-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
error: Failed dependencies:docker-ce is needed by docker-ce-rootless-extras-0:20.10.24-3.el7.x86_64fuse-overlayfs >= 0.7 is needed by docker-ce-rootless-extras-0:20.10.24-3.el7.x86_64slirp4netns >= 0.4 is needed by docker-ce-rootless-extras-0:20.10.24-3.el7.x86_64
[zhaoXXXXX@GZXXX-PM153161 basic-tool]$ sudo rpm -ivh policycoreutils-python-2.5-34.el7.x86_64.rpm
warning: policycoreutils-python-2.5-34.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:audit-libs-python >= 2.1.3-4 is needed by policycoreutils-python-2.5-34.el7.x86_64checkpolicy is needed by policycoreutils-python-2.5-34.el7.x86_64libapol.so.4()(64bit) is needed by policycoreutils-python-2.5-34.el7.x86_64libapol.so.4(VERS_4.0)(64bit) is needed by policycoreutils-python-2.5-34.el7.x86_64libcgroup is needed by policycoreutils-python-2.5-34.el7.x86_64libqpol.so.1()(64bit) is needed by policycoreutils-python-2.5-34.el7.x86_64libqpol.so.1(VERS_1.2)(64bit) is needed by policycoreutils-python-2.5-34.el7.x86_64libqpol.so.1(VERS_1.4)(64bit) is needed by policycoreutils-python-2.5-34.el7.x86_64libselinux-python is needed by policycoreutils-python-2.5-34.el7.x86_64libsemanage-python >= 2.5-14 is needed by policycoreutils-python-2.5-34.el7.x86_64policycoreutils = 2.5-34.el7 is needed by policycoreutils-python-2.5-34.el7.x86_64python-IPy is needed by policycoreutils-python-2.5-34.el7.x86_64setools-libs >= 3.3.8-4 is needed by policycoreutils-python-2.5-34.el7.x86_64
附件六:iptables对外开放5151端口
sudo iptables -I INPUT -p tcp --dport 5151 -j ACCEPT
相关文章:

CentOS7非root用户离线安装Docker及常见问题总结、各种操作系统docker桌面程序下载地址
环境说明 1、安装用户有sudo权限 2、本文讲docker组件安装,不是桌面程序安装 3、本文讲离线安装,不是在线安装 4、目标机器是内网机器,与外部网络不连通 下载 1、下载离线安装包,并上传到$HOME/basic-tool 目录 下载地址&am…...

Alibaba Spring Cloud 十三 Nacos,Gateway,Nginx 部署架构与负载均衡方案
在微服务体系中,Nacos 主要承担“服务注册与发现、配置中心”的职能,Gateway(如 Spring Cloud Gateway)通常负责“路由转发、过滤、安全鉴权、灰度流量控制”等功能,而 Nginx 则常被用作“边缘反向代理”或“统一流量入…...

+-*/运算符优先级计算模板
acwing3302 知识点一:有关unordered_map的优先级 头文件<unordered_map>,然后进行符号优先级定义 定义方式unordered_map<char,int>pr{ {,1},{-,1},{*,2},{/,2}};其余没定义的默认为0 知识点二:头文件<cctype>中的isdigit()是判断…...

GPT 结束语设计 以nanogpt为例
GPT 结束语设计 以nanogpt为例 目录 GPT 结束语设计 以nanogpt为例 1、简述 2、分词设计 3、结束语断点 1、简述 在手搓gpt的时候,可能会遇到一些性能问题,即关于是否需要全部输出或者怎么节约资源。 在输出语句被max_new_tokens 限制,…...

FastDFS的安装及使用
分布式存储发展历程 前段时间 618 活动火热进行,正是购物的好时机。当我们访问这些电 商网站的时候,每一个商品都会有各式各样的图片展示介绍,这些图 片一张两张可以随便丢在服务器的某个文件夹中,可是电商网站如此 大体量的…...

C++ lambda表达式
目录 1.lambda表达式 1.1什么是Lambda表达式? 1.2Lambda表达式的语法 1.3捕捉列表 1.4函数对象与lambda表达式 1.lambda表达式 1.1什么是Lambda表达式? Lambda表达式是C11标准引入的一种匿名函数,它允许你在需要函数的地方直接编写代码…...

react页面定时器调用一组多个接口,如果接口请求返回令牌失效,清除定时器不再触发这一组请求
为了实现一个React页面使用定时器调用一组多个接口,并在任意一个接口请求返回令牌失效时清除定时器且不再触发这一组请求,可以遵循以下步骤: 1. 定义API调用函数:创建一个函数来处理一组API调用。每个API调用都应该检查响应状态以…...

Python的泛型(Generic)与协变(Covariant)
今天咱们聊聊Python类型标注中的泛型(Generic),与协变(Covariant)。 不了解类型标注的小伙伴,可以先看一看我的上一篇文章 “Python类型检查” Python 类型检查-CSDN博客 例子 这次我开个宠物商店。看下面代码。 class Animal:passclass Dog(Animal):passclass Cat(A…...

Python Typing: 实战应用指南
文章目录 1. 什么是 Python Typing?2. 实战案例:构建一个用户管理系统2.1 项目描述2.2 代码实现 3. 类型检查工具:MyPy4. 常见的 typing 用法5. 总结 在 Python 中,静态类型检查越来越受到开发者的重视。typing 模块提供了一种方式…...

OpenEuler学习笔记(六):OpenEuler与其他Linux服务器的区别是什么?
OpenEuler是一款基于Linux内核的开源服务器操作系统,与其他Linux服务器操作系统(如CentOS、Ubuntu Server等)存在多方面的区别,主要体现在以下几个方面: 一、社区与支持 OpenEuler:由华为发起并开源&…...

如何使用CRM数据分析和洞察来支持业务决策和市场营销?
如何使用CRM数据分析和洞察来支持业务决策和市场营销? 大家好!今天咱们聊聊一个特别重要的话题——如何利用客户关系管理(CRM)系统中的数据进行分析与洞察能够帮助我们做出更好的业务决策以及提升市场营销效果。其实啊࿰…...

MyBatis和JPA区别详解
文章目录 MyBatis和JPA区别详解一、引言二、设计理念与使用方式1、MyBatis:半自动化的ORM框架1.1、代码示例 2、JPA:全自动的ORM框架2.1、代码示例 三、性能优化与适用场景1、MyBatis:灵活的SQL控制1.1、适用场景 2、JPA:开发效率…...

SVN客户端使用手册
目录 一、简介 二、SVN的安装与卸载 1. 安装(公司内部一般会提供安装包和汉化包,直接到公司内部网盘下载即可,如果找不到可以看下面的教程) 2. 查看SVN版本 编辑 3. SVN卸载 三、SVN的基本操作 1. 检出 2. 清除认证数据 3. 提交…...

VsCode安装文档
一、下载 进入VS Code官网:Visual Studio Code - Code Editing. Redefined,点击 DownLoad for Windows下载windows版本 当然也可以点击旁边的箭头,下载Windows版本 或 Mac OS 版本 备注: Stable:稳定版Insiders&#…...

豆包MarsCode 蛇年编程大作战 | 高效开发“蛇年运势预测系统”
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 豆包MarsCode 蛇年编程大作战 | 🐍 蛇年运势预测 在线体验地址:蛇年…...

【动态规划】--- 斐波那契数模型
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Journey 🏠 第N个泰波那契数模型 📌 题目解析 第N个泰波那契数 题目要求的是泰波那契数,并非斐波那契数。 &…...

生信软件管家——conda vs pip
pip vs conda: 安装过python包的人自然两种管理软件都用过, Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别 总的来说: pip是包管理软件,conda既是包管理软件&…...

代码随想录——串
文章目录 反转字符串反转字符串Ⅱ路径加密反转字符串中的单词动态口令字符串匹配重复的子字符串 反转字符串 344. 反转字符串 //前后对应交换 //0<->sSize-1 //1<->sSize-2 //... //i<->sSize-1-i,i0,1,...,(sSize-1)/2 void reverseString(char* s, int s…...

詳細講一下RN(React Native)中的列表組件FlatList和SectionList
1. FlatList 基礎使用 import React from react; import { View, Text, FlatList, StyleSheet } from react-native;export const SimpleListDemo: React.FC () > {// 1. 準備數據const data [{ id: 1, title: 項目 1 },{ id: 2, title: 項目 2 },{ id: 3, title: 項目 3…...

TDengine 与上海电气工业互联网平台完成兼容性认证
在工业数字化转型和智能化升级的浪潮中,企业对高效、可靠的数据管理解决方案的需求日益增长。特别是在风电智能运维、火电远程运维、机床售后服务等复杂多样的工业场景下,如何实现海量设备和时序数据的高效管理,已经成为推动行业升级的关键。…...

随机矩阵投影长度保持引理及其证明
原论文中的引理 2 \textbf{2} 2 1. \textbf{1. } 1. 引理 1 \textbf{1} 1(前提之一) 1.1. \textbf{1.1. } 1.1. 引理 1 \textbf{1} 1的内容 👉前提: X ∼ N ( 0 , σ ) X\sim{}N(0,\sigma) X∼N(0,σ)即 f ( x ) 1 2 π σ e – x 2 2 σ 2 f(x)\text{}…...

深度学习利用数据加载、预处理和增强数据提高模型的性能
深度学习数据预处理是一个关键步骤,旨在提高模型的性能和准确性。 通过数据加载、预处理和增强,可以显著提高深度学习模型的性能和准确性。在实际应用中,需要根据具体的数据和任务来选择合适的预处理和增强技术。 以下将详细论述并举例说明如…...

ESP32服务器和PC客户端的Wi-Fi通信
ESP32客户端-服务器Wi-Fi通信 本指南将向您展示如何设置ESP32板作为服务端,PC作为客户端,通过HTTP通信,以通过Wi-Fi(无需路由器或互联网连接)交换数据。简而言之,您将学习如何使用HTTP请求将一个板的数据发…...

新型人工智能“黑帽”工具:GhostGPT带来的威胁与挑战
生成式人工智能的发展既带来了有益的生产力转型机会,也提供了被恶意利用的机会。 最近,Abnormal Security的研究人员发现了一个专门为网络犯罪创建的无审查AI聊天机器人——GhostGPT,是人工智能用于非法活动的新前沿,可以被用于网…...

Spring MVC (三) —— 实战演练
项目设计 我们会将前端的代码放入 static 包下: 高内聚,低耦合 这是我们在实现项目的设计思想,一个项目里存在很多个模块,每一个模块内部的要求类与类、方法与方法要相互配合紧密联系,这就是高内聚,低耦合…...

媒体新闻发稿要求有哪些?什么类型的稿件更好通过?
为了保证推送信息的内容质量,大型新闻媒体的审稿要求一向较为严格。尤其在商业推广的过程中,不少企业的宣传稿很难发布在这些大型新闻媒体平台上。 媒体新闻发稿要求有哪些?就让我们来了解下哪几类稿件更容易过审。 一、媒体新闻发稿要求有哪…...

【游戏设计原理】82 - 巴斯特原则
巴斯特原则的核心是“对你的玩家好一点”,这一点直击游戏设计的核心——玩家体验。 现代游戏设计不仅要注重挑战性,还要关注玩家的情绪波动与行为反应。当玩家因为过高的难度感到挫败甚至愤怒时,他们往往选择退出游戏,而不是迎接…...

DDD架构实战第六讲总结:领域驱动设计中的聚合
云架构师系列课程之DDD架构实战第六讲总结:领域驱动设计中的聚合 聚合提升了对象系统的粒度,保证了业务逻辑的完整性,减少了错误产生的概率 一、引言 本讲将探讨领域驱动设计(DDD)中的重要概念——聚合。聚合是业务完整性的单元,是一个更大力度的封装。在领域驱动设计中…...

vim如何设置自动缩进
:set autoindent 设置自动缩进 :set noautoindent 取消自动缩进 (vim如何使设置自动缩进永久生效:vim如何使相关设置永久生效-CSDN博客)...

C++入门14——set与map的使用
在本专栏的往期文章中,我们已经学习了STL的部分容器,如vector、list、stack、queue等,这些容器统称为序列式容器,因为其底层是线性序列的数据结构,里面存储的是元素本身。而本篇文章我们要来认识一下关联式容器。 &am…...