centos安装docker及排错方法

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

[root@web1 ~]# yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装docker

首先需要虚拟机联网,安装yum工具

[root@web1 ~]# yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
[root@web1 ~]# yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@web1 ~]# sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
[root@web1 ~]# yum makecache fast

最后安装docker

[root@web2 ~]# yum install -y docker-ce

启动docker

Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此需要直接关闭防火墙!

# 关闭
[root@web1 ~]# systemctl stop firewalld
# 禁止开机启动防火墙
[root@web1 ~]# systemctl disable firewalld

查看docker是否启动

[root@web1 ~]# docker images

通过命令启动docker

[root@web1 ~]# systemctl start docker  # 启动docker服务
[root@web1 ~]# systemctl stop docker  # 停止docker服务
[root@web1 ~]# systemctl restart docker  # 重启docker服务

如果启动时出现错误:

提示:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

前往此网站浏览报错信息并修改:
CentOS安装Docker(超详细)_centos 安装docker-优快云博客
https://cn.bing.com/search?pglt=41&q=CentOS%E5%AE%89%E8%A3%85Docker(%E8%B6%85%E8%AF%A6%E7%BB%86)_centos+%E5%AE%89%E8%A3%85docker-优快云%E5%8D%9A%E5%AE%A2&cvid=c2af4037cd1443e3b0ef6b5c0a59162d&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQABhAMgYIAhAAGEAyBggDEAAYQDIGCAQQABhAMgYIBRAAGEAyBggGEAAYQDIGCAcQABhAMgYICBBFGEHSAQgxMjM1ajBqMagCCLACAQ&FORM=ANNTA1&ucpdpc=UCPD&PC=ASTS
安装docker出现错误:需要:container-selinux >= 2:2.74
                                                slirp4netns >= 0.4
                                                fuse-overlayfs >= 0.7
                                                container-selinux >= 2:2.74
[root@web1 ~]# yum install docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.33-3.1.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 containerd.io-1.6.33-3.1.el7.x86_64 需要
---> 软件包 docker-ce.x86_64.3.26.1.4-1.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 3:docker-ce-26.1.4-1.el7.x86_64 需要
--> 正在处理依赖关系 docker-ce-rootless-extras,它被软件包 3:docker-ce-26.1.4-1.el7.x86_64 需要
---> 软件包 docker-ce-cli.x86_64.1.26.1.4-1.el7 将被 安装
--> 正在处理依赖关系 docker-buildx-plugin,它被软件包 1:docker-ce-cli-26.1.4-1.el7.x86_64 需要
--> 正在处理依赖关系 docker-compose-plugin,它被软件包 1:docker-ce-cli-26.1.4-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.33-3.1.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 containerd.io-1.6.33-3.1.el7.x86_64 需要
---> 软件包 docker-buildx-plugin.x86_64.0.0.14.1-1.el7 将被 安装
---> 软件包 docker-ce.x86_64.3.26.1.4-1.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 3:docker-ce-26.1.4-1.el7.x86_64 需要
---> 软件包 docker-ce-rootless-extras.x86_64.0.26.1.4-1.el7 将被 安装
--> 正在处理依赖关系 fuse-overlayfs >= 0.7,它被软件包 docker-ce-rootless-extras-26.1.4-1.el7.x86_64 需要
--> 正在处理依赖关系 slirp4netns >= 0.4,它被软件包 docker-ce-rootless-extras-26.1.4-1.el7.x86_64 需要
---> 软件包 docker-compose-plugin.x86_64.0.2.27.1-1.el7 将被 安装
--> 解决依赖关系完成
错误:软件包:3:docker-ce-26.1.4-1.el7.x86_64 (docker-ce-stable)
          需要:container-selinux >= 2:2.74
错误:软件包:docker-ce-rootless-extras-26.1.4-1.el7.x86_64 (docker-ce-stable)
          需要:slirp4netns >= 0.4
错误:软件包:docker-ce-rootless-extras-26.1.4-1.el7.x86_64 (docker-ce-stable)
          需要:fuse-overlayfs >= 0.7
错误:软件包:containerd.io-1.6.33-3.1.el7.x86_64 (docker-ce-stable)
          需要:container-selinux >= 2:2.74
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest

解决办法:安装【docker-ce-selinux】

[root@web1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装完毕后再次执行,成功

[root@web1 ~]# yum install docker-ce docker-ce-cli containerd.io
1.el7.x86_64                                                                         7/10
  验证中      : 1:docker-ce-cli-26.1.4-1.el7.x86_64                                                                     8/10
  验证中      : docker-ce-rootless-extras-26.1.4-1.el7.x86_64                                                           9/10
  验证中      : docker-buildx-plugin-0.14.1-1.el7.x86_64                                                               10/10
已安装:
  docker-ce.x86_64 3:26.1.4-1.el7                                                                                      
作为依赖被安装:
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8               containerd.io.x86_64 0:1.6.33-3.1.el7                    
  docker-buildx-plugin.x86_64 0:0.14.1-1.el7                       docker-ce-cli.x86_64 1:26.1.4-1.el7                      
  docker-ce-rootless-extras.x86_64 0:26.1.4-1.el7                  docker-compose-plugin.x86_64 0:2.27.1-1.el7              
  fuse-overlayfs.x86_64 0:0.7.2-6.el7_8                            fuse3-libs.x86_64 0:3.6.1-4.el7                          
  slirp4netns.x86_64 0:0.4.3-4.el7_8

完毕!

[root@web1 ~]# docker -v
Docker version 26.1.4, build 5650f9b

<think>好的,我现在需要帮助用户在CentOS 7的离线环境下安装Docker并配置远程连接。首先,用户提到的是离线安装,所以需要先获取Docker的二进制安装包。根据引用[2]中的信息,用户需要访问指定的URL下载稳定版本的Docker二进制包,然后上传到目标服务器进行解压和安装。 接下来,安装步骤可能需要解压文件,并将可执行文件移动到系统的bin目录下,然后配置systemd服务。这部分需要确保所有依赖项都已满足,例如检查防火墙状态,如引用[4]中提到的,可能需要开放相应的端口,比如2375或2376用于远程连接。 然后配置Docker的远程访问,这里需要修改Docker的daemon.json文件,添加hosts参数来监听TCP端口。同时,可能需要调整systemd的docker.service文件,确保配置正确。这部分需要注意安全风险,因为开放远程访问可能会带来安全隐患,所以用户可能需要配置TLS认证,但用户的问题中没有提到TLS,可能需要提醒用户或者提供相关步骤。 另外,用户之前的问题是关于通过SSH连接Docker容器,但这次是关于Docker守护进程的远程连接,所以需要区分两者。用户可能需要两种不同的远程连接方式:一种是连接到容器内部,另一种是连接到Docker守护进程本身。当前问题更偏向于后者,即配置Docker守护进程的远程API访问。 在安全方面,引用[3]中提到了挂载docker.sock和docker二进制文件到容器中,这可能与Docker的远程连接无关,但需要注意权限问题。同时,引用[4]中的防火墙配置可能需要开放Docker的端口,比如2375/tcp,用户需要检查防火墙设置,确保端口开放。 最后生成相关问题需要考虑用户可能的后续需求,比如如何验证安装、如何加强安全配置、常见问题解决等。需要确保步骤清晰,命令准确,同时提醒用户离线安装可能遇到的依赖问题,例如需要提前安装某些库文件。 总结步骤:下载Docker二进制包,解压安装,配置systemd服务,设置远程访问,调整防火墙,验证安装,配置TLS(可选),然后测试远程连接。需要注意用户是CentOS 7离线环境,所以所有操作不能依赖在线资源,必须提前准备好所有依赖项。</think>以下是在CentOS 7离线环境下安装Docker并配置远程连接的完整指南: ### 一、离线安装Docker #### 1. 准备二进制安装包 - 从可联网设备下载Docker静态二进制包(参考引用[2]): ```bash wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz ``` - 通过U盘或内网传输工具将压缩包上传至目标服务器 #### 2. 解压安装 ```bash tar xzvf docker-*.tgz sudo cp docker/* /usr/bin/ ``` #### 3. 创建systemd服务(关键步骤) ```bash cat <<EOF | sudo tee /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com [Service] ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always [Install] WantedBy=multi-user.target EOF ``` #### 4. 启动服务 ```bash sudo systemctl daemon-reload sudo systemctl enable docker sudo systemctl start docker ``` ### 二、配置远程连接 #### 1. 修改Docker守护进程配置 ```bash sudo mkdir -p /etc/docker cat <<EOF | sudo tee /etc/docker/daemon.json { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } EOF ``` #### 2. 修改服务配置文件 ```bash sudo sed -i 's/^ExecStart=.*/ExecStart=/usr/bin/dockerd/g' /usr/lib/systemd/system/docker.service sudo systemctl daemon-reload sudo systemctl restart docker ``` #### 3. 防火墙配置(参考引用[4]) ```bash sudo firewall-cmd --permanent --add-port=2375/tcp sudo firewall-cmd --reload ``` ### 三、验证安装与连接 #### 1. 本地验证 ```bash docker version docker info ``` #### 2. 远程连接测试(从其他机器) ```bash docker -H tcp://目标服务器IP:2375 version ``` ### 四、安全增强(强烈建议) #### 1. 创建TLS证书 ```bash mkdir ~/docker-certs && cd ~/docker-certs openssl genrssa -aes256 -out ca-key.pem 4096 openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem # 生成服务器证书(需交互操作) openssl genrssa -out server-key.pem 4096 openssl req -subj "/CN=your_server_ip" -sha256 -new -key server-key.pem -out server.csr echo subjectAltName = IP:your_server_ip > extfile.cnf openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \ -CAcreateserial -out server-cert.pem -extfile extfile.cnf ``` #### 2. 配置TLS验证 修改`/etc/docker/daemon.json`: ```json { "tls": true, "tlscacert": "/path/to/ca.pem", "tlscert": "/path/to/server-cert.pem", "tlskey": "/path/to/server-key.pem", "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"] } ``` ### 五、排错指南 1. **端口冲突**:若2375端口被占用,可改用其他端口 2. **SELinux拦截**:临时禁用`setenforce 0`或配置SELinux策略 3. **证书权限**:确保证书文件权限为`600`
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值