1 moby、docker-ce与docker-ee
docker原是一个开源项目,主要由docker公司维护,2017年年初,docker公司将原先的docker项目改名为moby,并创建了docker-ce和docker-ee。
moby是继承了原先docker的项目,是社区维护的的开源项目;
docker-ce是docker公司维护的开源项目,是一个基于moby项目的免费的容器产品;
docker-ee是docker公司维护的闭源产品,是docker公司的商业产品。
2 操作系统要求
- CentOS 7(CentOS 6安装会有依赖缺失,安装失败)
- 必须启用centos-extras存储库。 默认情况下,此存储库已启用,但如果已将其禁用,则需要重新启用它
- 建议使用overlay2存储驱动程序
3 卸载旧版本
较旧版本的Docker被称为docker或docker-engine。 如果已安装这些,请卸载它们以及相关的依赖项。
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine |
执行该命令只会移除旧版本的docker,保留/var/lib/docker 目录下的内容,包括旧版本docker所创建的镜像、容器、卷等数据。
4 如何选择安装docker方式
- 大多数用户设置Docker的存储库并从中进行安装,以便于安装和升级任务。 这是推荐的方法。
- 有些用户下载RPM软件包并手动安装并完全手动管理升级。 这在没有访问互联网的系统上安装Docker的情况下非常有用。
- 在测试和开发环境中,一些用户选择使用自动便捷脚本来安装Docker。
4.1 使用存储库(yum)安装
在新主机上首次安装Docker CE之前,需要设置Docker存储库。 之后,您可以从存储库安装和更新Docker。
1 安装所需的包。 yum-utils提供yum-config-manager工具,devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2。
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 |
> https://download.docker.com/linux/centos/docker-ce.repo
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
https://download.docker.com/linux/centos/docker-ce.repo: [Errno 14] problem making ssl connection
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] problem making ssl connection
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
3 [可选]启用边缘和测试存储库。 这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以将它们与稳定存储库一起启用。
sudo yum-config-manager --enable docker-ce-edge sudo yum-config-manager --enable docker-ce-test |
可以通过使用--disable标志运行yum-config-manager命令来禁用边缘或测试存储库。 要重新启用它,请使用--enable标志。 以下命令禁用边缘存储库。
sudo yum-config-manager --disable docker-ce-edge |
注意:从Docker 17.06开始,稳定版本也会被推送到边缘并测试存储库。
sudo yum install docker-ce |
2 生产系统中,可能需要安装指定版本的docker,而不是最新版本。执行如下命令,即可列出可用的docker版本
yum list docker-ce --showduplicates | sort -r |
结果:第一列是软件包名称,第二列是版本字符串,第三列是仓库名称,表示软件包存储的位置。
Loading mirror speeds from cached hostfile Loaded plugins: fastestmirror docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 17.03.2.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 |
sudo yum install docker-ce-<VERSION STRING> |
sudo yum install docker-ce-18.06.0.ce -y |
Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: libseccomp.so.2()(64bit) Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: libsystemd.so.0()(64bit) Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: libsystemd.so.0(LIBSYSTEMD_209)(64bit) Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: systemd-units Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: libc.so.6(GLIBC_2.17)(64bit) Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: container-selinux >= 2.9 Error: Package: docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) Requires: libseccomp >= 2.3 |
这是因为阿里的yum源是CentOS 7的,所以操作系统环境强制为CentOS 7
Docker已安装但尚未启动。 已创建docker组,但未向该组添加任何用户。
sudo systemctl start docker |
sudo systemctl status docker |
#docker version 或者 docker -v Client: Version: 18.06.0-ce API version: 1.38 Go version: go1.10.3 Git commit: 0ffa825 Built: Wed Jul 18 19:08:18 2018 OS/Arch: linux/amd64 Experimental: false
Server: Engine: Version: 18.06.0-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: 0ffa825 Built: Wed Jul 18 19:10:42 2018 OS/Arch: linux/amd64 Experimental: false |
4 通过运行hello-world映像验证是否正确安装了docker
sudo docker run hello-world |
来自Docker的问候! 此消息表明您的安装似乎正常工作。
为了生成此消息,Docker采取了以下步骤: 1. Docker客户端联系了Docker守护程序。 2. Docker守护程序从Docker Hub中提取了“hello-world”图像。 (AMD64) 3. Docker守护程序从该映像创建了一个新容器,该容器运行 生成您当前正在阅读的输出的可执行文件。 4. Docker守护程序将该输出流式传输到发送它的Docker客户端 到你的终端。
要尝试更有野心(ambitious)的东西,您可以运行Ubuntu容器: $ docker run -it ubuntu bash
使用免费的Docker ID共享图像,自动化工作流程等: https://hub.docker.com/
有关更多示例和想法,请访问: https://docs.docker.com/engine/userguide/ |
如果运行失败是因为国内方位Docker Hub的速度很不稳定,可以配置镜像加速器解决此问题。使用加速器可以提升获取Docker官方镜像的速度,这里配置阿里云的镜像加速器。
https://www.aliyun.com/product/acr?spm=a2c4g.11186623.5.1.md59Gw
https://cr.console.aliyun.com/cn-qingdao/mirrors
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://编码.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker |
要升级Docker CE,请下载较新的软件包文件并重复安装过程,使用yum -y upgrade命令而不是yum -y install命令进行更新,并指向新文件。
5 卸载docker
主机上的图像,容器,卷或自定义配置文件不会自动删除。 要删除所有图像,容器和卷用如下命令