目录

CentOS-7-64-安装-Docker

CentOS 7 64 安装 Docker

前言

在虚拟机中安装 Docker 是一种常见的测试和开发环境搭建方式。通过在虚拟机上安装 Docker,可以方便地创建和管理容器化应用,同时避免对宿主机系统造成影响。以下是在 CentOS 7 虚拟机中安装 Docker 的详细步骤。


1. 更新系统(可以不操作)

在安装 Docker 之前,建议先更新虚拟机中的系统软件包:

sudo yum update -y

https://i-blog.csdnimg.cn/direct/18e3594d890048789b906256575e131b.png

2. 卸载旧版本的 Docker(如果已安装)

2.1 确认系统中是否已安装 Docker

运行以下命令检查系统中是否已安装 Docker 相关包:

yum list installed | grep docker

如果没有任何输出,则说明系统中未安装 Docker。

2.2 如果虚拟机中之前安装过 Docker,需要先卸载旧版本
2.2.1 停止 Docker 服务

在卸载 Docker 之前,需要先停止 Docker 服务:

sudo systemctl stop docker
2.2.2 禁用 Docker 自启动
sudo systemctl disable docker
2.2.3 卸载 Docker 软件包

运行以下命令卸载 Docker 及其相关组件:

sudo yum remove docker  docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce docker-ce-cli  containerd.io \
docker-buildx-plugin \
docker-compose-plugin

https://i-blog.csdnimg.cn/direct/0347bca8518342c8b633f62f80154ef9.png

2.2.4 卸载 Docker 软件包

删除 Docker 的数据目录和配置文件:

sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
2.2.5 删除 Docker 用户组

如果之前创建了 Docker 用户组,可以删除该用户组:

sudo groupdel docker
2.2.6 清理 YUM 配置

删除 Docker 的 YUM 仓库配置文件:

sudo rm -rf /etc/yum.repos.d/docker-ce*
2.2.7 清理 YUM 缓存

清理 YUM 缓存以确保系统状态一致:

sudo yum clean all
2.2.8 验证 Docker 是否已完全卸载

运行以下命令检查系统中是否还残留 Docker 组件:

yum list installed | grep docker

如果没有任何输出,则表示 Docker 已完全卸载。

https://i-blog.csdnimg.cn/direct/3615faa014b64466a3a2cdf692480223.png

3. 安装必要的依赖

安装一些必要的依赖包,这些包用于管理 Docker 的存储和配置:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

https://i-blog.csdnimg.cn/direct/7ae7cfc12ae04437b7456baf8dd183c1.png

4. 添加 Docker 的官方 YUM 仓库

使用 yum-utils 添加 Docker 的官方仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

https://i-blog.csdnimg.cn/direct/e8480581080744779779287e2ec5decf.jpeg

5. 安装 Docker

从 Docker 的官方仓库安装最新版本的 Docker:

yum -y install docker

https://i-blog.csdnimg.cn/direct/4bdb65ce00644d0b974a27ecf45205f4.png

6. 启动 Docker 服务

安装完成后,启动 Docker 守护进程并设置开机自启:

sudo systemctl start docker
sudo systemctl enable docker

https://i-blog.csdnimg.cn/direct/a8d3cafe6f50496abdcd2e4d1b53b47c.png

7. 验证 Docker 是否安装成功

运行一个简单的测试容器来验证 Docker 是否正常工作:

sudo docker run hello-world

https://i-blog.csdnimg.cn/direct/8be25529323c40239b80a2fb9d898643.png

7.1 Docker运行/拉取 hello-world 镜像失败或超时
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com",
        "https://zfzbet67.mirror.aliyuncs.com"
      ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl status docker

https://i-blog.csdnimg.cn/direct/fb230594b8224fbdb5e2beab64ccca74.png

8. (可选)将用户添加到 Docker 组

默认情况下,Docker 需要以 root 用户运行。为了避免每次运行 Docker 命令时都需要使用 sudo ,可以将当前用户添加到 docker 组:

sudo usermod -aG docker $USER

然后重新登录或重启虚拟机以使更改生效。

https://i-blog.csdnimg.cn/direct/b05cec9355da40df8b4e38a9900dde56.png

如果Docker提示组不存在,使用如下方式:

8.1 创建 docker

如果 docker 组确实不存在,可以通过以下命令创建:

sudo groupadd docker

如果组已存在,该命令会提示“group ‘docker’ already exists”,但这不会影响后续操作。

8.2. 将用户添加到 docker

创建组后,需要将当前用户添加到 docker 组中:

sudo usermod -aG docker $USER

此命令会将当前用户( $USER )添加到 docker 组中,而不会移除用户原有的其他组。

8.3. 应用组变更

为了让组变更生效,可以执行以下命令:

newgrp docker

或者重新登录当前用户。

8.4. 检查组成员资格

通过以下命令确认用户是否已成功加入 docker 组:

groups

如果输出中包含 docker ,则表示用户已正确加入。

8.5. 检查Docker权限

如果问题仍未解决,可以检查Docker的socket文件权限:

ls -l /var/run/docker.sock

该文件的组所有权应为 docker ,权限应为 srw-rw---- 。如果不是,可以通过以下命令修复:

sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock
8.6. 重启Docker服务

如果上述步骤仍未解决问题,可以尝试重启Docker服务:

sudo systemctl restart docker
8.7. 测试Docker命令

完成上述步骤后,运行以下命令测试Docker是否可以正常工作:

docker ps

如果不再提示权限问题,则表示问题已解决。

https://i-blog.csdnimg.cn/direct/a70938fdeb28419ab6014382edc2df7d.png

如果问题仍然存在,建议检查Docker的安装是否完整,或者查看系统日志以获取更多信息。

9. 安装 Docker Compose(可选)

如果需要使用 Docker Compose,可以通过以下命令安装:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

在这里插入图片描述

注意事项

  1. 内核版本 :Docker 需要较新的内核版本(建议 3.10 或更高)。如果虚拟机的内核版本较低,可能需要升级内核。
  2. 虚拟机网络配置 :确保虚拟机的网络配置正确,以便 Docker 容器可以正常访问外部网络。
  3. 存储空间 :Docker 容器和镜像会占用一定的磁盘空间,请确保虚拟机有足够的存储空间。
  4. 防火墙规则 :如果虚拟机启用了防火墙,可能需要调整防火墙规则以允许 Docker 容器的网络通信。

通过以上步骤,您可以在 CentOS 7 虚拟机中成功安装并运行 Docker。