CentOS安装Docker-ce并配置国内镜像更新于2019.12.17
本⽂内容
Linux在线/离线安装Docker-CE (开源版本)
鉴于公司⼀般使⽤Centos 7 作为服务器,本⽂只记录Centos 7系统安装Docker部分,更多详见
前提条件
1.系统、内核
CentOS7 要求64位系统、内核版本3.10以上
CentOS6 要求版本在6.5以上,系统64位、内核版本2.6.32-431以上
查看内核版本号
uname -r #查看内核版本
cat /etc/os-release #查看系统信息
2.开启centos-extras资源库
使⽤Centos 7,开启centos-extras资源库
centos-extras这个yum资源库默认是开启的,如果禁⽤了,请打开
推荐使⽤Overlay2作为存储驱动
卸载旧版本Docker容器
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
删除旧版本Docker⽂件
sudo rm /var/lib/docker/ -rf
Centos 7在线安装Docker-CE
本节适⽤于可访问⽹络的情况
设置yum仓库
安装必要依赖包
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加阿⾥镜像稳定版仓库
$ sudo yum-config-manager --add-repo mirrors.aliyun/docker-ce/linux/po
添加阿⾥源时有时会报错,如果报错,使⽤如下命令使⽤官⽅源centos vim命令
#删除异常源
sudo rm -f /pos.po
#使⽤官⽅源
sudo yum-config-manager --add-repo download.docker/linux/po
更新yum缓存
sudo yum makecache fast
安装Docker-CE
注意事项:本步骤分两部分,仅需按需求使⽤其⼀
1 安装最新版
sudo yum install -y docker-ce docker-ce-cli containerd.io
2 安装指定版本
列出可⽤版本
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.-3.el7 docker-ce-stable
docker-ce.x86_64 18.-3.el7 docker-ce-stable
安装指定版本
<VERSION_STRING>需要替换为第⼆列的版本号,如:18.-3.el7
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动Docker服务
sudo systemctl start docker
Centos 7离线安装Docker-CE
本节仅适⽤于⽆外⽹环境下
下载RPM包
访问官⽅⽹站提供的下载rpm包地址
官⽅提供的离线包主要需要下载
containerd.io-<VERSION_STRING>.x86_64.rpm
docker-ce-<VERSION_STRING>.x86_64.rpm
docker-ce-cli-<VERSION_STRING>.x86_64.rpm
注意事项:
在保证⼤版本相同下,docker-ce与docker-ce-cli 版本要尽量相同
不要使⽤beta与rc
版本号带.centos与不带基本没什么区别
注:未提到的docker-ce-selinux安装包在新版本中已经被废弃了,需要下载另外的⼀个依赖包container-selinux 安装RPM包
官⽅⽅式
使⽤rpm按顺序安装依赖包或sudo yum /path/to/package.rpm,以下为举例
$ sudo rpm -ivh containerd.io-1.2.5-3.1.el7.x86_64.rpm
$ sudo rpm -ivh docker-ce-cli-18.09.6-3.el7.x86_64.rpm
$ sudo rpm -ivh container-selinux-2.95-2.arch.rpm
$ sudo rpm -ivh docker-ce-18.09.6-3.el7.x86_64.rpm
官⽅安装⽅式可能出现的问题
1、在安装以上rpm包的时候,如果出现缺少依赖的错误,⽐如:
error: Failed dependencies:
policycoreutils >= 2.5-11 is needed by container-selinux-2:2.95-2.arch
selinux-policy >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.arch
selinux-policy-base >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.arch
selinux-policy-targeted >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.arch
$ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm
如果对应的这个包被其它包依赖(policycoreutils被policycoreutils-python包依赖),这时会出现错误提⽰:
error: Failed dependencies:
policycoreutils = 2.5-8.el7 is needed by (installed) policycoreutils-python-2.5-8.el7.x86_64
解决办法:先以不依赖的⽅式安装policycoreutils,再下载新的policycoreutils-python包升级。
$ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm --nodeps
$ sudo rpm -Uvh policycoreutils-python-2.5-29.el7.x86_64.rpm
其它类似错误,参考以上⽅法即可。
2、如果出现的是:
error: Failed dependencies:
xxxxxx is needed by xxxxxxxxxxxxxxxxxx
启动Docker服务
$ sudo systemctl start docker
安装后配置
添加国内镜像
只有内⽹的情况下可以不配置
国内镜像很多,如阿⾥云,⽹易蜂巢,DaoCloud,Docker中国区官⽅镜像等,这些都可以。
sudo vim /etc/docker/daemon.json,添加如下内容,注意替换镜像地址url
{
...省略其它配置...,
"registry-mirrors": ["7uuu3esz.mirror.aliyuncs"]
}
修改Docker根⽬录
推荐配置
Docker默认安装在/var/lib/docker⽬录下,⼀般⽽⾔,如果我们的服务器没有把/var⽬录从/分离出来,那么就会占⽤/⽬录的空间,⼀般根⽬录设置都不会很⼤,镜像、容器等⼜⽐较占硬盘,推荐修改到⼤容量⽬录
sudo vim /etc/docker/daemon.json,添加"data-root"指定docker安装根⽬录,注意替换/path/to/path
{
...省略其它配置...,
"data-root": "/path/to/path"
}
容器⽇志配置
推荐配置
当容器⽇志量变⼤,长期不处理的话,⽇志只会越来越多,占⽤空间不说,docker logs -f 容器时,⽇志滚动很久才会到最新的⽇志
我们通过设置修改单个⽇志配置⽂件的最⼤值与当⽇志到达最⼤值后保留的⽇志⽂件数
sudo vim /etc/docker/daemon.json
{
...省略其它配置...,
"log-driver": "json-file",
"log-opts": {"max-size":"50m", "max-file":"1"}
}
⽇志量尽量设置得少⼀些,50m其实也很⼤,屏幕也要刷好久,最好在测试与⽣产环境将输出到控制台的⽇志写到⽂件或ELK中添加⾃建私有仓库⽀持
如果没有可以不配置
有时我们需要将⾃⼰公司的docker镜像上传到⾃建私有仓库来分发镜像
⼀般⽽⾔,我们不会为私有仓库添加https⽀持,docker官⽅⼜要求需要使⽤https才能login\pull\push等操作
官⽅给出的解决办法是添加insecure-registries,可同时添加多个
sudo vim /etc/docker/daemon.json
{
...省略其它配置...,
"insecure-registries": ["10.2.7.70:5000"]
}
添加⽤户到docker组
只⽤root⽤户可以不配置
⾮root⽤户使⽤docker命令需要加sudo前缀,这是可以通过配置避免的
您现在应该考虑将⽤户添加到“docker”组
$ sudo usermod -aG docker your-user-name
$ newgrp docker
重启使Docker配置⽣效
所有配置修改都需要重启docker服务才能⽣效
systemctl daemon-reload
systemctl restart docker
通过docker info查看配置是否⽣效
卸载Docker
使⽤yum包管理⽅式
$ sudo yum remove docker-ce
删除docker安装⽬录
删除docker根⽬录为危险操作,会删除docker容器、镜像、数据,请谨慎操作
$ sudo rm -rf /var/lib/docker #默认安装⽬录
通过docker info | grep "Docker Root Dir"查看安装⽬录,并删除此⽬录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论