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
您必须手动删除任何已编辑的配置文件。
参考链接: