CentOS7系统安装Docker

官方文档:https://docs.docker.com/engine/install/centos/

1. YUM 安装

1.1 安装最新版本

# (1) 卸载旧版本 docker
$ sudo yum remove \
  docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine \
  docker-ce

# (2) 安装 docker yum 源
$ sudo yum install -y yum-utils
# 这个命令如果报错 [Errno 14] curl#35 - "TCP connection reset by peer"
# 多试几次
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 清华源(建议)
$ sudo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 阿里源
# sudo sed -i 's+https://download.docker.com+https://mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# (3) 安装最新版本
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# (4) 检查版本
# 实际上已经安装了 docker compose 命令
$ docker -v
Docker version 26.1.4, build 5650f9b
$ docker compose version
Docker Compose version v2.27.1

# (5) 修改 Docker Daemon 启动文件
# 由于 Docker 使用过程中会对 Centos 操作系统中的 iptables 防火墙中的 FORWARD 链默认规划产生影响
# 以及需要让 Docker Daemon 接受用户自定义的 daemon.json 文件
# 做以下修改
$ sudo sed -i 's|ExecStart=/usr/bin/dockerd .*|ExecStart=/usr/bin/dockerd|' /usr/lib/systemd/system/docker.service
$ sudo sed -i '/^ExecStart=\/usr\/bin\/dockerd/a ExecStartPost=/sbin/iptables -P FORWARD ACCEPT' /usr/lib/systemd/system/docker.service

# (6) 启动 docker 并设置为开机自启
$ sudo systemctl daemon-reload
$ sudo systemctl enable docker --now

# (7) 验证
sudo docker run hello-world

1.2 安装指定版本

# (1) 卸载旧版本 docker
$ sudo yum remove \
  docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine \
  docker-ce

# (2) 安装 docker yum 源
$ sudo yum install -y yum-utils
# 这个命令如果报错 [Errno 14] curl#35 - "TCP connection reset by peer"
# 多试几次
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 清华源(建议)
$ sudo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 阿里源
# sudo sed -i 's+https://download.docker.com+https://mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# (3) 查看仓库中有哪些 docker 版本
$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            3:26.1.4-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.1.3-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.1.2-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.1.1-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.1.0-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.0.2-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.0.1-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.0.0-1.el7                      docker-ce-stable
docker-ce.x86_64            3:25.0.5-1.el7                      docker-ce-stable
docker-ce.x86_64            3:25.0.4-1.el7                      docker-ce-stable
...

# (4) 安装指定版本,VERSION_STRING 是第 (3) 步骤输出内容中的第二列,如 3:25.0.5-1.el7 中 : 后面的内容
$ VERSION_STRING="25.0.5-1.el7"
$ sudo yum install docker-ce-$VERSION_STRING docker-ce-cli-$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

# (5) 检查版本
# 实际上已经安装了 docker compose 命令
$ docker -v
Docker version 25.0.5, build 5dc9bcc
$ docker compose version
Docker Compose version v2.27.1

# 后续步骤省略

2. 使用 RPM 包离线部署

在一个有网且有 docker yum 源的机器上,下载 rpm 包

$ sudo yum install -y --downloadonly --downloaddir=./docker-deps docker-ce

将 docker-deps 目录上传到离线机器上然后执行:

$ sudo rpm -ivh docker-deps/*

离线包手动下载官网地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

一份完整的 docker rpm 文件如下:


[root@node docker-deps]# ll
total 118488
-rw-r--r-- 1 root root    78256 Aug 23  2019 audit-libs-python-2.8.5-4.el7.x86_64.rpm
-rw-r--r-- 1 root root   302068 Nov 12  2018 checkpolicy-2.5-8.el7.x86_64.rpm
-rw-r--r-- 1 root root 37045876 Jun 10  2024 containerd.io-1.6.33-3.1.el7.x86_64.rpm
-rw-r--r-- 1 root root    40816 Jul  6  2020 container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
-rw-r--r-- 1 root root 14280912 Jun 10  2024 docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 28596976 Jun 10  2024 docker-ce-26.1.4-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 15445372 Jun 10  2024 docker-ce-cli-26.1.4-1.el7.x86_64.rpm
-rw-r--r-- 1 root root  9840840 Jun 10  2024 docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 14058416 Jun 10  2024 docker-compose-plugin-2.27.1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root    83764 Apr 29  2020 fuse3-libs-3.6.1-4.el7.x86_64.rpm
-rw-r--r-- 1 root root    55796 Apr 29  2020 fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
-rw-r--r-- 1 root root    67720 Aug 23  2019 libcgroup-0.41-21.el7.x86_64.rpm
-rw-r--r-- 1 root root    57460 Apr  4  2020 libseccomp-2.3.1-4.el7.x86_64.rpm
-rw-r--r-- 1 root root   115284 Nov 12  2018 libsemanage-python-2.5-14.el7.x86_64.rpm
-rw-r--r-- 1 root root   468316 Apr  4  2020 policycoreutils-python-2.5-34.el7.x86_64.rpm
-rw-r--r-- 1 root root    32880 Jul  4  2014 python-IPy-0.75-6.el7.noarch.rpm
-rw-r--r-- 1 root root   635184 Nov 12  2018 setools-libs-3.3.8-4.el7.x86_64.rpm
-rw-r--r-- 1 root root    83452 Apr 29  2020 slirp4netns-0.4.3-4.el7_8.x86_64.rpm

3. 二进制包安装

官网文档:https://docs.docker.com/engine/install/binaries/

下载地址:https://download.docker.com/linux/static/stable/

$ wget https://download.docker.com/linux/static/stable/x86_64/docker-27.2.1.tgz
$ tar xzvf docker-27.2.1.tgz
$ sudo cp docker/* /usr/bin/
$ sudo dockerd &

$ sudo docker -v
Docker version 27.2.1, build 9e34c9b

# 为安装 docker compose
$ docker compose
docker: 'compose' is not a docker command.
See 'docker --help'

# 安装 docker-compose
# 去网页 https://github.com/docker/compose/releases 中下载好 docker-compose 命令,比如 docker-compose-linux-x86_64
# 上传到服务器之后
$ sudo mv docker-compose-linux-x86_64 /usr/bin/docker-compose
$ sudo chmod +x /usr/bin/docker-compose

$ docker-compose -v
Docker Compose version v2.40.3

4. 镜像加速并修改数据目录

$ sudo mkdir -p /data/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "data-root": "/data/docker",
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}
EOF

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
posted on 2025-11-20 23:13  老地瓜大数据  阅读(0)  评论(0)    收藏  举报