Centos7上安装docker
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。
社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。
一、安装docker
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
查询安装过的包:
$ sudo yum list installed | grep docker
删除安装的软件包:
$ sudo yum -y remove docker-engine.x86_64
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install -y docker-ce #repo中默认只开启stable仓库,安装时最好不要选择sudo yum install -y docker-ce命令来安装最新的,可能会出现安装后启动不了问题,建议使用下面方法安装
$ sudo yum install -y <FQPN> # 例如:sudo yum install -y docker-ce-17.12.0.ce
出现问题:
sudo yum install -y docker-ce命令安装可能出现问题:
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"
8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
二、修改下载镜像源为阿里云
1、配置镜像加速器
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决。以配置阿里云加速器为例,首先 登录阿里云(没有账号请先注册),搜索 容器镜像服务
路径 :镜像中心 - 镜像加速器 - 加速器地址 , 加速器地址示例:https:/xxxxxx.mirror.aliyuncs.com
2、通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器
{
“registry-mirrors”:[“https://xxxxxxxx.mirror.aliyuncs.com”]
}
3、重启 Docker
systemctl daemon-reload
systemctl restart docker
三、问题
1、运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决
解决办法
[root@localhost ~]# rm -f /var/run/yum.pid
删除文件后再次运行yum可用。
2、因为之前已经安装过旧版本的docker,在安装的时候报错如下:
Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
3、卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
4、再次安装docker
$ sudo yum install docker-ce
需要特别注意的是:
安装完docker后启动出现:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"问题。
可能是CentOS7版本与docker版本不兼容导致,建议在CentOS7+版本下不要安装最新版的docker,除非CentOS为更高版本的,不然很有可能就报上述问题,亲测有效!