Centos安装docker需要操作系统是 CentOS 7 or 8,必须启用centos extras存储库。默认情况下,此存储库处于启用状态,但如果已禁用它,则需要重新启用它。
卸载旧版本
老版本的docker被称作docker 或者 docker-engine,如果有老版本的docker,把它和相关依赖一起卸载。
$ remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装步骤
官方推荐使用通过设置docker仓库的方法来安装,安装和升级都简单些。
1 设置docker仓库
第一次安装的时候需要设置docker仓库,后面就可以利用该仓库进行安装和升级docker。
需要先安装 yum-utils
包,它可以提供yum-config-manager
工具和配置稳定的仓库。
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2 安装docker引擎
安装最新版docker引擎和容器,或者去下一步制定一个版本安装:
$ yum install docker-ce docker-ce-cli containerd.io
如果提示接受GPG key,验证是否是060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,如果是,就接受。
如果启用了多个Docker存储库,则在不在yum install或yum update命令中指定版本的情况下,安装或更新总是安装可用的最高版本,这可能不适合您的稳定性需要。
上面的命令安装好了最新版的docker,但是还没有启动服务,docker组也被创建好了,但是还没有用户分配到该组。
3 安装指定版本的docker引擎
列出仓库可用的所有版本,然后选择安装,下面命令把列出的结果进行倒序排序:
[root@iZbp180j96p8y98l1s1oucZ ~]# yum list docker-ce --showduplicates | sort -r
Last metadata expiration check: 0:32:38 ago on Fri 28 May 2021 06:17:26 PM CST.
Installed Packages
docker-ce.x86_64 3:20.10.6-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.6-3.el8 @docker-ce-stable
docker-ce.x86_64 3:20.10.5-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.4-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.3-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.2-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.1-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.0-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.15-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.14-3.el8 docker-ce-stable
docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable
Available Packages
通过下面命令指定要安装的版本,例如,对于3:20.10.6-3.el8
,它的版本号是:
到-
中间的部分,也就是: 20.10.6
$ yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
用版本号替换一下,上面的命令就是:
$ yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io
4 启动docker
$ systemctl start docker
5 运行hello-world
为了验证docker正确安装并正常启动,执行自带的hello-world
镜像。
$ docker container run hello-world
如果这个hello-world
镜像默认不存在,会自动下载,然后运行这个image。