官方docker安装文档: docs.docker.com/engine/inst…
系统要求
要安装Docker Engine,您需要CentOS 7或8的维护版本。不支持或未测试存档版本。 必须启用centos-extras存储库。该存储库默认情况下处于启用状态,但是如果已禁用它,则需要重新启用它。
1、卸载旧版本
如果已安装老的版本的(docker或docker-engine),请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum报告没有安装这些软件包,那就可以了。
[root@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
/var/lib/docker/的内容(包括images, containers, volumes, and networks)被保留。 Docker Engine软件包现在称为docker-ce。
2、安装方式
你可以根据需要以不同的方式安装Docker Engine:
- 大多数用户会设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。
- 一些用户下载并手动安装RPM软件包,并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。
- 在测试和开发环境中,一些用户选择使用自动便利脚本来安装Docker。
2.1、使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
2.1.1、安装docker
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装最新版的Docker Engine and 容器
sudo yum makecache fast
sudo yum -y install docker-ce docker-ce-cli containerd.io
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
2.1.2、启动docker
$ sudo systemctl start docker
2.1.3、通过运行hello-world镜像来验证Docker Engine是否已正确安装。
$ sudo docker run hello-world
结果如下
[root@docker ~]# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d
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.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
2.2、从软件包安装
如果您无法使用Docker的存储库来安装Docker,则可以下载该发行版的.rpm文件并手动安装。每次要升级Docker Engine时,都需要下载一个新文件。
2.2.1、转到download.docker.com/linux/cento…
并选择您的CentOS版本。然后浏览到x86_64/stable/Packages/并下载要安装的Docker版本的.rpm文件。
Note: 安装 nightly or test (pre-release) 包时候, 把上面url中的stable改为nightly or test
2.2.2、安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径。
$ sudo yum install /path/to/package.rpm
Docker已安装但尚未启动。 docker组已创建,但没有用户添加到该组。
2.2.3、启动docker
$ sudo systemctl start docker
2.2.4、通过运行hello-world映像来验证Docker Engine是否已正确安装。
$ sudo docker run hello-world
此命令下载测试镜像并在容器中运行它。容器运行时,它会打印参考消息并退出。
2.3、使用便捷脚本进行安装
Docker在get.docker.com和test.docker.com上提供了脚本,用于将Docker Engine-Community的 edge 和 testing 版本快速且非交互地安装到开发环境中。脚本的源代码位于docker-install存储库中。不建议在生产环境中使用这些脚本,在使用它们之前,您应该了解潜在的风险:
- 脚本需要root或sudo权限才能运行。因此,在运行脚本之前,应仔细检查和审核脚本。
- 这些脚本尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您所在组织的准则和标准的角度来看,这可能会导致配置不受支持。
- 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。这可能会安装大量软件包,具体取决于主机的当前配置。
- 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“ edge”中发布的最新版本。
- 如果已使用其他机制将Docker安装在主机上,请不要使用便捷脚本。
本示例使用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>
如果您想以非root用户身份使用Docker,现在应该考虑使用类似以下方式将您的用户添加到“ docker”组:
sudo usermod -aG docker <your-user>
请记住注销并重新登录才能生效!
警告:将用户添加到“docker”组后,他们可以运行容器,这些容器可用于在Docker主机上获得root特权。有关更多信息,请参考Run the Docker daemon as a non-root user (Rootless mode).
使用便捷脚本后升级DOCKER 如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。重新运行便利程序脚本没有任何好处,如果尝试重新添加已经添加到主机的存储库,则可能导致问题。
3、卸载 Docker Engine
3.1、卸载Docker Engine,CLI和Containerd软件包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io
3.2、主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker
您必须手动删除所有已编辑的配置文件。