要在CentOS上开始使用DockerEngine-社区版,请确保您 满足前提条件,然后 安装Docker。
要安装Docker Engine-Community,您需要一个正在维护的CentOS 7版本。存档(过期)的版本不支持或未测试。
该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 Engine-Community软件包称为docker-ce
。
您可以根据需要以不同的方式安装Docker Engine-Community:
大多数用户会 设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。
一些用户下载并手动安装 RPM软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下很有用。
在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。
在新主机上首次安装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
使用以下命令来设置稳定的存储库。
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可选:启用nightly或test存储库。
这些存储库包含在
docker.repo
上面的文件中,但默认情况下处于禁用状态。您可以在稳定存储库旁边启用它们。以下命令启用nightly存储库。sudo yum-config-manager --enable docker-ce-nightly
要启用test通道,请运行以下命令:
sudo yum-config-manager --enable docker-ce-test
您可以通过运行带有标志的命令来禁用nightly或test存储库 。要重新启用它,请使用该标志。以下命令禁用nightly存储库。
yum-config-manager
--disable
--enable
sudo yum-config-manager --disable docker-ce-nightly
安装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存储库吗?
如果您启用了多个Docker存储库,则在未在
yum install
oryum update
命令中指定版本的情况下进行安装或更新将始终安装可能的最高版本,这可能不适合您的稳定性需求。
Docker已安装但尚未启动。docker
创建该组,但没有用户添加到该组。
要安装特定版本的Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
a。列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序,并被截断:
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
在本示例中以后缀表示)。
b。通过完整的软件包名称安装特定版本,该软件包名称是软件包名称(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命令。继续进行Linux后安装,以允许非特权用户运行Docker命令以及其他可选配置步骤。
升级DOCKER ENGINE-Community
要升级Docker Engine-Community,请按照安装说明进行操作,选择要安装的新版本。
如果您不能使用Docker的存储库来安装Docker,则可以下载该.rpm
版本的 文件并手动安装。每次要升级Docker Engine-Community时,都需要下载一个新文件。
转到 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 并下载.rpm
要安装的Docker版本的文件。
注意:要安装nightly 或test(预发布)软件包,
stable
请将上述URL中的单词更改为nightly
或test
。 了解nightly和test频道。
安装Docker Engine-Community,将下面的路径更改为您下载Docker软件包的路径。
sudo yum install /path/to/package.rpm
Docker已安装但尚未启动。docker
创建该组,但没有用户添加到该组。
这里测试安装docker-ce-18.09.9-3.el7.x86_64.rpm,在这之前需要安装docker-ce-cli-18.09.9-3.el7.x86_64.rpm 及
containerd.io-1.2.6-3.3.el7.x86_64.rpm 此软件包未安装会报: Error: Package: 3:docker-ce-18.09.9-3.el7.x86_64 (/docker-ce-18.09.9-3.el7.x86_64) Requires: containerd.io >= 1.2.2-3 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
启动Docker。
sudo systemctl start docker
通过运行hello-world
映像来验证是否正确安装了Docker Engine-Community 。
sudo docker run hello-world
此命令下载测试镜像并在容器中运行它。容器运行时,它会打印消息并退出。
Docker Engine-Community已安装并正在运行。您需要使用sudo
来运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。
升级DOCKER ENGINE-Community
要升级Docker Engine-Community,请下载更新的软件包文件,重复 安装过程,并使用yum -y upgrade
代替yum -y install
,并指向新文件。
Docker在get.docker.com 和test.docker.com上提供了便利脚本,用于将Docker Engine-Community的边缘版本和测试版本快速且非交互地安装到开发环境中。脚本的源代码在 docker-install
存储库中。 不建议在生产环境中使用这些脚本,并且在使用它们之前,您应该了解潜在的风险:
root
或具有sudo
特权。因此,在运行脚本之前,应仔细检查和审核脚本。本示例使用get.docker.com上的脚本,在Linux上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令,取代每次出现get
用test
。
警告:
在本地运行它们之前,请务必检查从Internet下载的脚本。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<output truncated>
如果您想将Docker作为非root用户使用,则现在应考虑使用类似以下方式将用户添加到“ docker”组:
sudo usermod -aG docker your-user
请记住注销并重新登录才能生效!
警告:
将用户添加到“docker”组后,他们可以运行容器,该容器可用于在Docker主机上获得root特权。 有关更多信息,请参考 Docker Daemon Attack Surface。
Docker Engine-Community已安装。它会自动在DEB
基于发行版的系统上启动。在 RPM
基于发行版的系统上,您需要使用相应的systemctl
或service
命令手动启动它 。如消息所示,默认情况下,非root用户不能运行Docker命令。
注意事项:
要安装没有root特权的Docker,请参阅 以非root用户身份运行Docker守护程序(无根模式)。
无根模式目前只作为实验功能。
使用便捷脚本后升级DOCKER
如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。重新运行便利程序脚本没有任何好处,如果尝试重新添加已经添加到主机的存储库,则可能导致问题。
卸载Docker软件包:
sudo yum remove docker-ce
主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
sudo rm -rf /var/lib/docker
您必须手动删除所有已编辑的配置文件。
继续阅读《用户指南》。