由于项目上没有使用到docker,有点遗忘了,复习一下
CentOS安装Docker-CE并配置国内镜像
前提条件
系统信息
- 系统、内核
CentOS7 要求64位系统、内核版本3.10以上
CentOS6 要求版本在6.5以上,系统64位、内核版本2.6.32-431以上
查看内核版本号
1 | uname -r #查看内核版本 |
- 开启centos-extras资源库
使用Centos 7,开启centos-extras资源库
centos-extras这个yum资源库默认是开启的,如果禁用了,请打开
推荐使用Overlay2作为存储驱动
卸载旧版本Docker容器
1 | $ sudo yum remove docker \ |
删除旧版本Docker文件
1 | sudo rm /var/lib/docker/ -rf |
Centos 7在线安装Docker-CE
- 本节适用于可访问网络的情况
设置yum仓库
安装必要依赖包
1 | $ sudo yum install -y yum-utils \ |
添加阿里镜像稳定版仓库
1 | $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
添加阿里源时有时会报错,如果报错,使用如下命令使用官方源
1 | #删除异常源 |
更新yum缓存
linux基础知识
1 | sudo yum makecache fast |
安装Docker-CE
注意事项:本步骤分两部分,仅需按需求使用其一
- 安装最新版
1 | sudo yum install -y docker-ce docker-ce-cli containerd.io |
- 安装指定版本
- 列出可用版本
1 | $ yum list docker-ce --showduplicates | sort -r |
- 安装指定版本
1 | $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io |
离线安装
- 本节仅适用于无外网环境下
下载RPM包
访问官方网站提供的下载rpm包地址
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
官方提供的离线包主要需要下载
containerd.io-
docker-ce-
docker-ce-cli-
注意事项:
在保证大版本相同下,docker-ce 与 docker-ce-cli 版本要尽量相同
不要使用beta与rc
版本号带.centos与不带基本没什么区别
注:未提到的docker-ce-selinux安装包在新版本中已经被废弃了,需要下载另外的一个依赖包container-selinux
container-selinux安装包下载地址:https://pkgs.org/download/container-selinux
安装RPM包
官方方式
使用rpm按顺序安装依赖包 或 sudo yum /path/to/package.rpm,以下为举例
1 | $ sudo rpm -ivh containerd.io-1.2.5-3.1.el7.x86_64.rpm |
以上均安装完成即可,以下是解决问题的思路离线安装解决问题这部分参考 https://blog.csdn.net/GentleLin/article/details/90294324
官方安装方式可能出现的问题
- 在安装以上rpm包的时候,如果出现缺少依赖的错误,比如:
1
2
3
4
5error: Failed dependencies:
policycoreutils >= 2.5-11 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy-base >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
selinux-policy-targeted >= 3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch
出现 “>=版本号”:说明你的系统上已经安装了这些包,只是这些包不是最新的,需要升级以policycoreutils包为例,可以在https://pkgs.org/上搜索对应的最新的rpm包,执行以下命令进行升级:
1 | $ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm |
如果对应的这个包被其它包依赖(policycoreutils被policycoreutils-python包依赖),这时会出现错误提示:
1 | error: Failed dependencies: |
解决办法:先以不依赖的方式安装policycoreutils,再下载新的policycoreutils-python包升级。
1 | $ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm --nodeps |
- 如果出现的是:
1
2error: Failed dependencies:
xxxxxx is needed by xxxxxxxxxxxxxxxxxx
直接下载对应的包安装即可。https://pkgs.org/
启动Docker服务
1 | $ sudo systemctl start docker |
添加国内镜像
只有内网的情况下可以不配置
国内镜像很多,如阿里云,网易蜂巢,DaoCloud,Docker中国区官方镜像等,这些都可以。
1 | sudo vim /etc/docker/daemon.json,添加如下内容,注意替换镜像地址url |
修改Docker根目录
推荐配置
Docker默认安装在/var/lib/docker目录下,一般而言,如果我们的服务器没有把/var目录从/分离出来,那么就会占用/目录的空间,一般根目录设置都不会很大,镜像、容器等又比较占硬盘,推荐修改到大容量目录
1 | sudo vim /etc/docker/daemon.json,添加"data-root"指定docker安装根目录,注意替换/path/to/path |
容器日志配置
推荐配置
当容器日志量变大,长期不处理的话,日志只会越来越多,占用空间不说,docker logs -f 容器时,日志滚动很久才会到最新的日志
我们通过设置修改单个日志配置文件的最大值与当日志到达最大值后保留的日志文件数
1 | sudo vim /etc/docker/daemon.json |
日志量尽量设置得少一些,50m其实也很大,屏幕也要刷好久,最好在测试与生产环境将输出到控制台的日志写到文件或ELK中
添加自建私有仓库支持
如果没有可以不配置
有时我们需要将自己公司的docker镜像上传到自建私有仓库来分发镜像
一般而言,我们不会为私有仓库添加https支持,docker官方又要求需要使用https才能login\pull\push等操作
官方给出的解决办法是添加insecure-registries,可同时添加多个
1 | sudo vim /etc/docker/daemon.json |
添加用户到docker组
只用root用户可以不配置
非root用户使用docker命令需要加sudo前缀,这是可以通过配置避免的
您现在应该考虑将用户添加到“docker”组
1 | $ sudo usermod -aG docker your-user-name |
重启使Docker配置生效
所有配置修改都需要重启docker服务才能生效
1 | systemctl daemon-reload |
通过docker info查看配置是否生效
卸载Docker
使用yum包管理方式
1 | $ sudo yum remove docker-ce |
删除docker安装目录
删除docker根目录为危险操作,会删除docker容器、镜像、数据,请谨慎操作
1 | $ sudo rm -rf /var/lib/docker #默认安装目录 |