一:环境配置.(这里使用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常用命令.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐