• CentOS安装Docker-ce并配置国内镜像


    前提条件

    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 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    添加阿里源时有时会报错,如果报错,使用如下命令使用官方源


    #删除异常源
    sudo rm -f /etc/yum.repos.d/docker-ce.repo
    #使用官方源
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    更新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.06.1.ce-3.el7                   docker-ce-stable
    docker-ce.x86_64  18.06.0.ce-3.el7                   docker-ce-stable

    安装指定版本

    <VERSION_STRING>需要替换为第二列的版本号,如:18.06.0.ce-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包地址

    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

    官方提供的离线包主要需要下载

    • containerd.io-<VERSION_STRING>.x86_64.rpm

    • docker-ce-<VERSION_STRING>.x86_64.rpm

    • docker-ce-cli-<VERSION_STRING>.x86_64.rpm

    注意事项:

    • 在保证大版本相同下,docker-cedocker-ce-cli 版本要尽量相同

    • 不要使用betarc

    • 版本号带.centos与不带基本没什么区别

    注:未提到的docker-ce-selinux安装包在新版本中已经被废弃了,需要下载另外的一个依赖包container-selinux

    container-selinux安装包下载地址:https://pkgs.org/download/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.el7_6.noarch.rpm
    $ sudo rpm -ivh docker-ce-18.09.6-3.el7.x86_64.rpm

    以上均安装完成即可,以下是解决问题的思路离线安装解决问题这部分参考 https://blog.csdn.net/GentleLin/article/details/90294324

    官方安装方式可能出现的问题

    1、在安装以上rpm包的时候,如果出现缺少依赖的错误,比如:


    error: 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包,执行以下命令进行升级:


    $ sudo rpm -Uvh policycoreutils-2.5-29.el7.x86_64.rpm

    如果对应的这个包被其它包依赖(policycoreutilspolicycoreutils-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

    直接下载对应的包安装即可。https://pkgs.org/

    启动Docker服务


    $ sudo systemctl start docker

    安装后配置

    添加国内镜像

    只有内网的情况下可以不配置

    国内镜像很多,如阿里云,网易蜂巢,DaoCloud,Docker中国区官方镜像等,这些都可以。

    这里选择阿里的镜像:https://vot9n4p2.mirror.aliyuncs.com ,当然这是我自己免费申请的

    sudo vim /etc/docker/daemon.json,添加如下内容,注意替换镜像地址url


    {
     "registry-mirrors": ["https://vot9n4p2.mirror.aliyuncs.com"]
    }

    修改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"查看安装目录,并删除此目录

  • 相关阅读:
    1:引文;
    基于改进遗传算法的配电网故障定位(matlab代码)
    如何通过经纬度坐标获取附近的地址信息?
    计算系统DFR
    什么是RabbitMQ?RabbitMQ的作用是什么?
    php中使用Imagick转换PDF第一页为PNG图片并且识别出二维码
    深入研究一下mysql
    组态软件在物联网中的应用
    如何解决分布式场景下的数据一致性问题?今天冰河的分布式锁服务插件mykit-lock开源啦
    涡流搜索算法(Matlab代码实现)
  • 原文地址:https://www.cnblogs.com/zhang-huan/p/16240585.html