要在 CentOS 上开始使用 Docker 引擎,请确保满足先决条件,然后按照安装步骤进行操作。
要安装 Docker 引擎,您需要以下 CentOS 版本之一的维护版本:
cat /etc/redhat-release
必须启用 centos-extras
存储库。该存储库默认处于启用状态,但如果您已禁用它,则需要重新启用它(默认已启用)。
旧版本的 Docker 的名称为 docker
或 docker-engine
。在尝试安装新版本之前卸载任何此类旧版本以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum 可能会报告您没有安装这些软件包。
卸载 Docker 时,存储在 /var/lib/docker/
中的映像、容器、卷和网络不会自动删除。
您可以根据需要以不同的方式安装 Docker Engine:
您可以设置 Docker 的存储库并从中进行安装,以方便安装和升级任务。这是推荐的方法。
您可以下载 RPM 包并手动安装,并完全手动管理升级。这对于在无法访问互联网的气隙系统上安装 Docker 等情况非常有用。
在测试和开发环境中,您可以使用自动化便捷脚本来安装 Docker。
在新主机上首次安装 Docker Engine 之前,需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。
安装 yum-utils
软件包(提供 yum-config-manager
实用程序)并设置存储库。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine、containerd 和 Docker Compose。
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果提示接受 GPG 密钥,请验证指纹是否与 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
匹配,如果是,则接受。
此命令会安装 Docker,但不会启动 Docker。它还创建一个 docker
组,但是默认情况下不会向该组添加任何用户。
docker
用户组存在,但不包含任何用户,这就是为什么您需要使用 sudo
来运行 Docker 命令。
如果安装了最新版本则跳过这一步。
yum list docker-ce --showduplicates | sort -r
返回的列表取决于启用的存储库,并且特定于您的 CentOS 版本。
通过完全限定的包名称安装特定版本,即包名称 ( docker-ce
) 加上版本字符串(第二列),并用连字符 ( - ) 分隔。例如, docker-ce-3:24.0.0-1.el8
。
将
替换为所需的版本,然后运行以下命令进行安装:
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
如果您不想在 docker
命令前面添加 sudo
,请创建一个名为 docker
的 Unix 组并向其中添加用户。当 Docker 守护进程启动时,它会创建一个可供 docker
组成员访问的 Unix 套接字。在某些 Linux 发行版上,系统在使用包管理器安装 Docker Engine 时会自动创建该组。在这种情况下,您无需手动创建组。
docker
组。sudo groupadd docker
sudo usermod -aG docker $USER
注销并重新登录,以便重新评估您的组成员身份。
如果您在虚拟机中运行 Linux,则可能需要重新启动虚拟机才能使更改生效。
您还可以运行以下命令来激活对组的更改:
newgrp docker
如果您最初使用 sudo
运行 Docker CLI 命令,然后将用户添加到 docker
组,您可能会看到以下错误:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
此错误表明 ~/.docker/
目录的权限设置不正确,因为之前使用了 sudo
命令。
要解决此问题,请删除 ~/.docker/
目录(它会自动重新创建,但所有自定义设置都会丢失),或者使用以下命令更改其所有权和权限:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
许多现代 Linux 发行版使用 systemd 来管理系统启动时启动哪些服务。在 Debian 和 Ubuntu 上,Docker 服务默认在启动时启动。要使用 systemd 在其他 Linux 发行版上自动启动 Docker 和 Containerd,请运行以下命令:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
要停止此行为,请改用 disable
。
sudo systemctl disable docker.service
sudo systemctl disable containerd.service