运行环境:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。通过uname -r 命令查看内核版本。
[root@localhost /]# uname -r
3.10.0-862.el7.x86_64
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。Docker CE 即社区免费版,社区版分为stable和edge两种发布方式,stable版本是季度发布方式,edge版本是月份发布方式。Docker EE 即企业版,强调安全,但需付费使用。本文介绍 Docker CE 的安装使用。
使用如下命令移除之前的版本:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
[root@localhost ~]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
已加载插件:fastestmirror
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-selinux 没有匹配
参数 docker-engine-selinux 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
(如出现以上提示信息表示之前未安装docker)
1. 安装依赖的包。yum-utils, device-mapper-presistent-data, 和lvm2
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Determining fastest mirrors
* base: mirrors.shu.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: ftp.sjtu.edu.cn
base
(省略...)
已安装:
yum-utils.noarch 0:1.1.31-46.el7_5
作为依赖被安装:
libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-chardet.noarch 0:2.2.1-1.el7_1 python-kitchen.noarch 0:1.1.1-5.el7
完毕!
2. 添加Docker软件包源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(推荐使用国内源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo)
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
3. 开启edge版本库,关闭test版本库。这些版本库也包含在docker-ce.repo中,默认不可用,可以和稳定版本库一起开启:
[root@localhost ~]# yum-config-manager --enable docker-ce-edge
已加载插件:fastestmirror
(省略信息...)
[root@localhost ~]# yum-config-manager --disable docker-ce-test
已加载插件:fastestmirror
(省略信息...)
4.更新 yum 缓存(yum makecache fast)
[root@localhost ~]# yum makecache fast
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
(省略信息)
元数据缓存已建立
5.查看指定的版本(yum list docker-ce --showduplicates|sort -r)
[root@localhost ~]# yum list docker-ce --showduplicates|sort -r
已加载插件:fastestmirror
可安装的软件包
* updates: ftp.sjtu.edu.cn
Loading mirror speeds from cached hostfile
* extras: ftp.sjtu.edu.cn
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-edge
(省略信息...)
* base: mirrors.shu.edu.cn
6.安装指定版本(yum install docker-ce-18.06.1.ce -y)
[root@localhost ~]# yum install docker-ce-18.06.1.ce -y
(省略信息...)
已安装:
docker-ce.x86_64 0:18.06.1.ce-3.el7
作为依赖被安装:
audit-libs-python.x86_64 0:2.8.1-3.el7_5.1 checkpolicy.x86_64 0:2.5-6.el7 container-selinux.noarch 2:2.68-1.el7 libcgroup.x86_64 0:0.41-15.el7
libsemanage-python.x86_64 0:2.5-11.el7 policycoreutils-python.x86_64 0:2.5-22.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-2.el7
作为依赖被升级:
audit.x86_64 0:2.8.1-3.el7_5.1 audit-libs.x86_64 0:2.8.1-3.el7_5.1
完毕!
7.启动 Docker 服务(systemctl start docker)
[root@localhost ~]# systemctl start docker
测试:
查看版本(docker version)
[root@localhost ~]# docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:03 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:29 2018
OS/Arch: linux/amd64
Experimental: false
执行helloword(docker run hello-world)
[root@localhost ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest
(省略信息...)
8.删除Docker
yum remove docker-ce
rm -rf /var/lib/docker
-------------------------------------------------------------------------------------------------------------------------------------------------------
FAQ:
1. 启动报错:
[root@localhost docker]# systemctl start docker
Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.
To force a start use "systemctl reset-failed docker.service" followed by "systemctl start docker.service" again.
原因:在/etc/docker路径下增加了错误的daemon.json 文件导致
解决:删除此文件或修正文件中的json格式的信息