一:环境配置.(这里使用Yum安装,也可以Rpm和Shell安装)
1.1 Docker运行在CentOS7.X之上的要求是内核的版本要求在3.10之上的.我这里安装了CentOS7的.
uname -r
1.2 更新Yum包的索引.
sudo yum makecache fast
sudo yum install epel-release
1.3 配置Yum源.本地Yum源无法安装Docker的.
yum list docker-engine.x86_64 --showduplicates |sort -r(列出可用的docker版本).
vim /etc/yum.repos.d/docker.repo(添加以下内容).
1 [dockerrepo]
2 name=Docker Repository
3 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
4 enabled=1
5 gpgcheck=1
6 gpgkey=https://yum.dockerproject.org/gpg
二: 安装Docker.
2.1 列出仓库所有可用的版本.
yum list docker-engine.x86_64 --showduplicates |sort -r
2.2 这里选择安装1.13.0的版本.
首先移除旧版本,如果是安装过docker. CentOS没有安装Docker的软件包.
sudo yum -y remove docker-engine
sudo yum -y install docker-engine-<VERSION_STRING>(安装指定版本的).
sudo yum -y install docker-engine-1.13.0
2.3 启动Docker.
sudo systemctl start docker
2.4 验证安装是否正确.
2.5 查看Docker的版本.
三 .配置镜像加速器.
由于访问Docker Hub的速度不是很稳定,拉取镜像的速度非常慢.这里使用镜像加速器.使用阿里云或者网易的都可以的.
3.1 配置镜像加速器.
/etc/docker/daemon.json
网易的:一样的配置方式,二选一吧.
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
【附录】简单安装方式
首先安装 Docker 必要依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
用 yum 安装 Docker:
yum install -y docker-ce
查看版本
docker -v
启动docker
service docker start
设置开机启动
chkconfig docker on
配置 Docker
因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub
echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
systemctl daemon-reload
service docker restart
案例:运行Nginx容器
docker pull nginx
运行容器:
docker run -d -p 8080:80 nginx
验证容器:
curl localhost:8080
四、Docker默认的日志清理
4.1 默认的容器日志位置.
/var/lib/docker/containers/容器id/容器id-json.log
附带清理脚本如下:
#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
chmod添加执行权限,执行即可,这里是直接清空文件了,可能还有进程在写文件数据,直接rm是不释放磁盘空间的,原因如下,一般线上可以采用清空的方式,快速释放磁盘空间,清理告警.
这里没有使用
rm
方式来删除文件。使用rm -rf
方式删除日志后,通过df -h
会发现磁盘空间并没有释放。原因是在Linux或者Unix系统中,通过rm -rf
或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。正确姿势是cat /dev/null > *-json.log,当然你也可以通过rm -rf删除后重启docker。
五、彻底删除Docker
5.1 杀死所有运行容器
docker kill $(docker ps -a -q)
5.2 删除所有容器
docker rm $(docker ps -a -q)
5.3 删除所有镜像
docker rmi $(docker images -q)
5.4 停止docker服务
systemctl stop docker
5.5 删除存储目录
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/lib/dockershim
rm -rf /var/lib/docker
如果发现删除不掉,需要先
如果发现删除不掉,需要先
umount,如umount /var/lib/docker/devicemapper
5.6 卸载 docker
查看已安装的 docker 包
yum list installed | grep docker
5.7 卸载相关包
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
5.8 重启服务器(保险起见,所有bug皆可重启解决)
shutdown -r now
5.9 验证是否卸载成功
至此完成Docker的安装配置.Docker的相关命令参考我的这篇文章.Docker常用命令.