卸载旧版本
较旧的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报告未安装这些软件包,此时就OK了。
/var/lib/docker/
的内容(包括映像,容器,卷和网络)被保留。 Docker Engine-Community软件包现在称为docker-ce。
使用存储库安装
在新主机上首次安装Docker Engine-Community
之前,需要设置Docker
存储库。之后,您可以从存储库安装和更新Docker
。
设置存储库
- 安装所需的软件包。
yum-utils
提供了yum-config-manager
效用,并device-mapper-persistent-data
和lvm2
由需要devicemapper
存储驱动程序。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
结果:
2.使用以下命令来设置稳定的存储库。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
结果:
安装DOCKER ENGINE - COMMUNITY
- 安装最新版本的
Docker Engine-Community
和containerd
,或者转到下一步安装特定
版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
结果:
如果提示您接受GPG密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。
- 要安装特定版本的Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
(1).列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序,并被截断:
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
返回的列表取决于启用的存储库,并且特定于你的CentOS版本(.el7
在此示例中以后缀表示)。
(2).通过其完全合格的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce
)加上版本字符串(第二列),从第一个冒号(:
)一直到第一个连字符,并用连字符(-
)分隔。例如,docker-ce-18.09.1
。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
Docker已安装但尚未启动。docker创建该组,但没有用户添加到该组。
- 启动Docker。
$ sudo systemctl start docker
- 通过运行hello-world 映像来验证是否正确安装了
Docker Engine-Community
。
$ sudo docker run hello-world
此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。
Docker Engine-Community
已安装并正在运行。您需要使用sudo
来运行Docker
命令。继续进行安装后的配置,以允许非特权用户
运行Docker
命令以及其他可选配置步骤。
以非root用户身份管理Docker
Docker
守护程序绑定到Unix
套接字而不是TCP端口。默认情况下,Unix
套接字由用户拥有root
,其他用户只能使用来访问它sudo
。Docker
守护程序始终以root
用户身份运行。
如果您不想以sudo
作为docker
命令的开头,请创建一个名为docker
的Unix
组并将用户添加到其中。 Docker
守护程序启动时,它将创建一个可由Docker
组成员访问的Unix
套接字。
要创建docker组并添加用户,请执行以下操作:
- 创建docker组。
$ sudo groupadd docker
- 将用户添加到该docker组。
$ sudo usermod -aG docker $USER
- 注销并重新登录,以便重新评估您的组成员身份。
如果在虚拟机上进行测试,则可能需要重新启动虚拟机以使更改生效。
在桌面Linux环境(例如X Windows)上,完全注销会话,然后重新登录。
在Linux上,您还可以运行以下命令来激活对组的更改:
$ newgrp docker
- 确认你可以在没有sudo的情况下运行docker命令。
$ docker run hello-world
此命令下载测试镜像并在容器中运行。 容器运行时,它会打印参考消息并退出。
如果最初在将用户添加到docker
组之前使用sudo
运行Docker CLI
命令,则可能会看到以下错误,这表明〜/ .docker /
目录是由于sudo
命令而使用不正确的权限创建的。
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
要解决此问题,请删除~/.docker/目录(会自动重新创建目录,但是所有自定义设置都会丢失),或者使用以下命令更改其所有权和权限:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R