docker原是一个开源项目,主要由docker公司维护,2017年年初,docker公司将原先的docker项目改名为moby,并创建了docker-ce和docker-ee。
三者关系与区别:
moby是继承了原先docker的项目,是社区维护的的开源项目;
docker-ce是docker公司维护的开源项目,是一个基于moby项目的免费的容器产品;
docker-ee是docker公司维护的闭源产品,是docker公司的商业产品。
较旧版本的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 |
如果yum报告没有安装这些软件包,那就没关系。
执行该命令只会移除旧版本的docker,保留/var/lib/docker 目录下的内容,包括旧版本docker所创建的镜像、容器、卷等数据。
您可以根据需要以不同方式安装Docker CE:
在新主机上首次安装Docker CE之前,需要设置Docker存储库。 之后,您可以从存储库安装和更新Docker。
4.1.1 设置yum源
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 |
出现问题:
> --add-repo \
> https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
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
Trying other mirror.
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
这是因为国内访问不到docker官方镜像的缘故
通过阿里源进行设置
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开始,稳定版本也会被推送到边缘并测试存储库。
4.1.2 安装
1 安装最新docker-ce
sudo yum install docker-ce |
2 生产系统中,可能需要安装指定版本的docker,而不是最新版本。执行如下命令,即可列出可用的docker版本
yum list docker-ce --showduplicates | sort -r |
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 |
用以下命令可以按照指定版本的docker
sudo yum install docker-ce- |
例如:
sudo yum install docker-ce-18.06.0.ce -y |
注意:如果用的是CentOS 6 会报以下error
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组,但未向该组添加任何用户。
3 启动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 |
4.1.3 更新
要升级Docker CE,请下载较新的软件包文件并重复安装过程,使用yum -y upgrade命令而不是yum -y install命令进行更新,并指向新文件。
卸载Docker:
sudo yum remove docker-ce
主机上的图像,容器,卷或自定义配置文件不会自动删除。 要删除所有图像,容器和卷用如下命令
sudo rm -rf /var/lib/docker
您必须手动删除任何已编辑的配置文件。
参考链接:
https://docs.docker.com/install/linux/docker-ce/centos/