目录
1. 在CentOs上安装docker所需的系统环境
2. 卸载旧版本
2.1 查看是否已安装docker
2.2 卸载已安装的docker
3. 安装方式
3.1 使用rpm存储库安装(推荐使用该方法)
3.2 从包中安装
4. 开始docker
1. 在CentOs上安装docker所需的系统环境
需要以下CentOS版本之一的维护版本:
- CentOs 7
- CentOs 8(stream)
- CentOs 9(stream)
2. 卸载旧版本
2.1 查看是否已安装docker
执行docker命令:
docker -v
如果安装了就会输出docker的版本信息,例如:
Docker version 20.10.21, build baeda1f
如果没有安装docker,则可能会出现:
-bash: docker: command not found
以上是没有找到docker命令,代表没有安装docker
2.2 卸载已安装的docker
先暂停docker服务
systemctl stop docker
卸载Docker软件包:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
以上卸载时,如果提示:
Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal
说明并没有找到这些包并删除,那么我们会发现,docker已经存在,没有卸载成功
这时候我们可以尝试使用以下命令查找已安装的docker相关包:
yum list installed | grep docker
这个命令将列出所有已安装的包,并通过 grep 过滤出包含 "docker" 的包。如果这个命令返回了结果,那么你可以使用返回的包名来卸载 Docker
而以上则是返回了相关的docker包,我们将这些包进行卸载:
sudo yum remove containerd.io.x86_64 docker-buildx-plugin.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-rootless-extras.x86_64 docker-compose-plugin.x86_64
tip:以上命令,除了前面的"sudo yum remove"是固定的,后面的包则需要根据实际的情况拼接,以上只是博主的内容,切勿直接复制使用,可能会发生错误或卸载不完整!
在卸载过程中,会提示:
Is this ok [y/N]:
我们输入"y"按下回车键 代表同意即可
卸载运行之后会出现:
Complete!
就代表卸载完成了
3. 安装方式
可以用不同的方式安装Docker:
- 设置Docker的存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法
- 可以下载RPM包并手动安装,也可以完全手动管理升级。这在一些情况下很有用,比如在无法访问互联网的气隙系统上安装Docker
3.1 使用rpm存储库安装(推荐使用该方法)
在新主机上首次安装Docker之前,需要设置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的最新版本:
运行以下命令:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
当运行中提示:Is this ok [y/d/N]
我们输入:"y" 点击回车键同意即可继续安装
如果提示接受GPG密钥,验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,则接受(还会出现一次 Is this ok [y/N] 我们继续输入"y" 按下回车键)。
这个命令安装Docker,但不启动Docker。它还创建了一个docker组,但是,默认情况下它不会向该组添加任何用户。
最后提示:Complete! 则代表安装结束
这时候我们再查看一次docker版本,则会显示docker的具体版本:
docker -v
显示:
Docker version 25.0.3, build 4debf41
3.2 从包中安装
如果你不能使用Docker的rpm库来安装Docker,你可以为你的版本下载rpm文件并手动安装
首先,我们先检查一下自己的CentOs版本是多少,输入以下命令:
lsb_release -a
我这边输出了:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
转到 https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览到x86_64/stable/Packages/,下载需要安装的Docker版本的.rpm文件。
我们访问以上链接,会发现,会让我们选择自己的版本,我这里是7.9,所以我选择7.9
该下载页,有很多的包,每个包的意思不同,先了解一下每个包是什么
包名 | 解释 |
containerd.io | 这是 containerd 的 RPM 包。containerd 是一个容器运行时,它提供了底层的容器管理功能,如创建、启动、停止容器等。它是 Docker 和其他容器技术的底层组件 |
docker-buildx-plugin | 这是 Docker Buildx 的插件包。Docker Buildx 是一个扩展的构建工具,它支持使用 BuildKit 来构建多平台的 Docker 镜像 |
docker-ce | 这是 Docker 的社区版 RPM 包,提供了完整的容器化平台。它包括了 Docker 守护进程、Docker 命令行接口以及其他相关的工具和组件 |
docker-ce-cli | 这是 Docker 的命令行客户端的 RPM 包。它用于与 Docker 守护程序进行交互,执行如构建、运行、管理容器等操作 |
docker-ce-rootless-extras | 这是为 rootless 容器模式提供的额外工具和配置的 RPM 包。rootless 模式允许普通用户在没有 root 权限的情况下运行容器 |
docker-ce-selinux | 这是 Docker 的 SELinux 策略文件的 RPM 包。SELinux 是一个 Linux 内核的安全模块,用于提供强制访问控制。该包为 Docker 容器提供了 SELinux 策略,以增强系统的安全性 |
docker-compose-plugin | 这是 Docker Compose 的插件包。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过该插件,用户可以使用 docker compose 命令来管理由 Compose 文件定义的应用程序 |
docker-scan-plugin | 这是 Docker Scan 的插件包。Docker Scan 是一个用于扫描 Docker 镜像中的安全漏洞的工具 |
我们能看到,这些包都有很多版本,老版本不建议使用,尽量使用稳定版本或最新版本。
这些包后面都有发布时间,所以我们可以根据包名的数字(例如:1.6.9是比1.6.8更高的),或者发布时间来根据最新版。
若不想使用最新版,防止不够稳定或还存在bug,我们可以往前推移一两个版本,这里我们示范,就使用最新的版本(建议按照实际情况下载)。
安装docker,运行以下命令:
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.9-3.1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-buildx-plugin-0.12.1-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-25.0.2-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-25.0.3-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-rootless-extras-25.0.3-1.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-scan-plugin-0.9.0-3.el7.x86_64.rpm
运行之后,会进入下载,如果提示了:
Is this ok [y/d/N]
输入"y"按下回车键即可
这时候我们再查看一次docker版本,则会显示docker的具体版本:
docker -v
显示:
Docker version 25.0.3, build 4debf41
4. 开始docker
输入一段简单的docker命令:
docker ps
以上命令是查看docker正在运行的容器
但是很不理想,会提示:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
意思为 docker守护进程并没有运行
简单的说,是docker服务没有启动,我们需要启动docker服务
可以先检查docker服务状态:
systemctl status docker
输出的内容中,会看到这么一段:
Active: inactive (dead)
该程序是不活跃的,代表是没有启动该服务
启动docker,运行以下命令:
systemctl start docker
然后我们再查看docker的状态会发现输出是这样的:
Active: active (running)
提示该程序是活跃的,代表服务启动了
然后我们再返回查看docker的容器:
docker ps
会输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
列出了容器的相关信息,但并没有正在运行的容器,是因为我们还没有创建并运行容器,所以这里确实是没有数据的
现在我们就已经成功安装并启动了Docker。