主要参考官方推荐的CentOS安装文档,yum安装
安装前准备
操作系统版本
操作系统版本至少为CentOS7或者CentOS8,历史版本并不支持或者未经测试。
centos-extras库必须打开,这个库默认是开启的,但是如果你手动关闭了,需要重新打开。
推荐使用overlay2存储引擎
删除历史版本
历史版本的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报错没有匹配任何安装包,是没问题
/var/lib/docker/ 是提前预留的目录,用来存储镜像,容器,卷,网络。Docker引擎包现在叫 docker-ce
安装方法
你可以根据自己的需要,选择合适的Docker引擎安装方式
- 大部分用户选择通过设置Docker的yum源来安装,主要为了安装和更新方便,这也是最推荐的方式
- 一部分用户通过下载RPM包来手动安装,并且完全手动的进行包管理。这种情况适用于某些特殊场景,比如部分没有网络的系统上。
- 在测试或者开发环境,一部分用户选择使用自动一键脚本进行安装。不推荐,生产环境使用非常危险,建议从头review所有脚本代码再使用。
使用Docker的yum源安装
在往一台新的主机上安装Docker引擎之前,你需要线设置Docker的yum源。然后才可以从yum源中进行安装和更新
安装yum-utils包(提供yum-config-manage工具)并配置稳定版yum源
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装Docker引擎
- 安装最新版本Docker引擎和集成包
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果提示接受GPG密钥,验证密钥是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配就接受
配置了多个yum源
如果你启动了多个yum源,在使用yum install 或者yum update命令进行安装或者更新且不指定特定版本时,会自动帮你安装最新版本,这有可能不符合你对稳定性的需求。
上面的命令安装了Docker引擎包,但是并没有启动Docker,它同时创建了一个docker的用户组,但是并没有在这个用户组里添加任何默认用户
$ cat /etc/group | grep docker
docker:x:993:
- 安装特定版本的Docker引擎包,先列出repo中的所有可用包,然后选择安装
a. 列出并排序所有repo中的可用包,下面的例子用版本号做了排序,由高到低,只截取了一部分
$ yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror, langpacks
已安装的软件包
可安装的软件包
docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
这个列表返回了所有可用yum源包,并且是适用于你CentOS版本的(例子中,.el7后缀标记了这一点)
b. 可以根据官方全称安装特定版本的包,主要通过包名(docker-ce)加上版本号字符串(第二个字段),从(:)之后开始,到第一个分隔符,用(-)连接,例如上面的docker-ce-20.10.7-3
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
上面的命令安装了Docker引擎包,但是并没有启动Docker,它同时创建了一个docker的用户组,但是并没有在这个用户组里添加任何默认用户
- 启动Docker
$ sudo systemctl start docker
- 跑一下hello-world镜像,判断Docker引擎是否安装成功
$ sudo docker run hello-world
sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:97a379f4f88575512824f3b352bc03cd75e239179eea0fecc38e597b2209f49a
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
...
这个命令会自动下载hello-world镜像,并在容器中执行,当容器执行之后,会输出信息并推出。
以上就是安装和运行Docker引擎的方法,使用sudo权限运行docker命令,下一步可以通过这个步骤去配置无权限用户执行Docker命令以及其他可配置选项步骤
更新Docker引擎
更新Docker引擎可以参考安装步骤,先下载最新安装包,使用yum -y update代替yum -y install,并且指定最新文件。
