zoukankan      html  css  js  c++  java
  • 7.Docker安装&配置加速

    Docker安装

    https://docs.docker.com/get-docker/

    基础依赖环境
    CPU 64 bits
    内核版本 Linux Kernel 3.10及以上版本(支持cgroups and namespaces)

    Centos 7默认yum源extras中、1.13版本

    推荐版本Centos7.4及以上版本

    Yum安装

    Centos:

    # 安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # 添加Docker软件包源
    wget -O /etc/yum.repos.d/ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    sed -i "s@download.docker.com/@mirrors.tuna.tsinghua.edu.cn/docker-ce/@g" /etc/yum.repos.d/docker-ce.repo
    # 安装Docker CE
    yum install docker-ce -y
    # 启动Docker服务并设置开机启动
    systemctl enable docker && systemctl restart docker
    

    Ubuntu:

    # 移除原有docker
    sudo apt-get remove docker docker-engine docker.io containerd runc
    # 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    # 安装GPG证书
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # 写入软件源信息
    sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # 更新并安装Docker-CE
    sudo apt-get -y update
    sudo apt-get -y install docker-ce
    
    # 安装指定版本的Docker-CE:
    # Step 1: 查找Docker-CE的版本:
    apt-cache madison docker-ce
    docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
    docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
    # Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
    sudo apt-get -y install docker-ce=[VERSION]
    sudo apt-get install docker-ce=18.06.3~ce~3-0~ubuntu
    
    

    二进制安装

    # 安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    #下载Docker软件包
    wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.3.tgz
    tar -xvf docker-19.03.3.tgz
    mv docker/* /usr/bin
    #创建systemd unit文件
    cat > docker.service <<"EOF"
    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service containerd.service
    Wants=network-online.target
    
    [Service]
    Type=notify
    ExecStart=/usr/bin/dockerd
    ExecReload=/bin/kill -s HUP $MAINPID
    TimeoutSec=0
    RestartSec=2
    Restart=always
    StartLimitBurst=3
    StartLimitInterval=60s
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    TasksMax=infinity
    Delegate=yes
    KillMode=process
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    mv docker.service /usr/lib/systemd/system
    #启动 docker
    systemctl daemon-reload && systemctl enable docker && systemctl restart docker
    

    docker版本信息查询

    # docker version
    Client: Docker Engine - Community
     Version:           19.03.3
     API version:       1.40
     Go version:        go1.12.10
     Git commit:        a872fc2f86
     Built:             Tue Oct  8 00:58:10 2019
     OS/Arch:           linux/amd64
     Experimental:      false
    
    Server: Docker Engine - Community
     Engine:
      Version:          19.03.3
      API version:      1.40 (minimum version 1.12)
      Go version:       go1.12.10
      Git commit:       a872fc2f86
      Built:            Tue Oct  8 00:56:46 2019
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.2.6
      GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
     runc:
      Version:          1.0.0-rc8
      GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
     docker-init:
      Version:          0.18.0
      GitCommit:        fec3683
    
    # docker info
    Client:
     Debug Mode: false
    
    Server:
     Containers: 0
      Running: 0
      Paused: 0
      Stopped: 0
     Images: 0
     Server Version: 19.03.3	#服务端版本
     Storage Driver: overlay2	#存储引擎	
      Backing Filesystem: extfs	#后端文件系统,即服务器的磁盘文件系统
      Supports d_type: true	#是否支持d_typr
      Native Overlay Diff: true	#是否支持差异数据存储
     Logging Driver: json-file	#日志类型
     Cgroup Driver: cgroupfs	#cgroup类型
     Plugins:	#插件
      Volume: local	#本地卷
      Network: bridge host ipvlan macvlan null overlay	#overlay跨主机通信
      Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog	#日志类型
     Swarm: inactive	#是否支持swarm
     Runtimes: runc		#已安装的容器运行时
     Default Runtime: runc	#默认使用容器运行时
     Init Binary: docker-init	#初始化容器的守护进程,即pid为1
     containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb	#版本
     runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f	#runc版本
     init version: fec3683	#init版本
     Security Options:	#安全选项
      seccomp	#审计(操作)https://docs.docker.com/enginx/security/seccomp/
       Profile: default	#默认的配置文件
     Kernel Version: 3.10.0-957.el7.x86_64	#宿主机内核版本
     Operating System: CentOS Linux 7 (Core)	#宿主机系统
     OSType: linux	#宿主机操作系统类型
     Architecture: x86_64	#宿主机架构
     CPUs: 4	#宿主机CPU数量
     Total Memory: 3.84GiB	#宿主机内存数量
     Name: k8s-master	#宿主机hostname
     ID: RFHV:S3R3:TNJQ:QPHW:IJUW:CQEJ:ITPT:BEQG:KWEZ:HUXR:NAUH:CGOF
     Docker Root Dir: /var/lib/docker	#宿主机数据保存目录;可单独进行数据盘挂载,用来单独保存容器数据
     Debug Mode: false	#是否开启Debug
     Registry: https://index.docker.io/v1/	#镜像仓库
     Labels:	#其他表情
     Experimental: false	#是否测试版
     Insecure Registries:	#非安全镜像
      127.0.0.0/8
     Registry Mirrors:
      http://f1361db2.m.daocloud.io/
     Live Restore Enabled: false	#是否开启活动重启(重启docker-daemon不关闭容器)
    
    

    安装问题

    不支持swap限制告警

    vim /etc/default/groub
    #在GRUB_CMDLINE_LINUX行内添加
    GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
    #保存关闭文件
    #Update GRUB.
    sudo update-grub
    reboot
    

    启动docker 端口映射时IPV4无法使用

    vim /etc/sysctl.conf
    #添加如下代码:   
    net.ipv4.ip_forward=1
    #重新network服务
    systemctl restart network
    sysctl -p
    #查看修改结果(ip_forward=1表示成功)
    sysctl net.ipv4.ip_forward
    

    ping 其它 Node 上的 Pod IP

    • docker 需要以 root 用于运行;
    • docker 从 1.13 版本开始,可能将 iptables FORWARD chain的默认策略设置为DROP,从而导致 ping 其它 Node 上的 Pod IP 失败,遇到这种情况时,需要手动设置策略为 ACCEPT
    $ sudo iptables -P FORWARD ACCEPT
    
    • 并且把以下命令写入 /etc/rc.local 文件中,防止节点重启iptables FORWARD chain的默认策略又还原为DROP
    /sbin/iptables -P FORWARD ACCEPT
    

    配置 docker 加速文件

    Docker cn加速

    Daocloud加速配置地址

    https://www.daocloud.io/mirror#accelerator-doc
    
    #配置镜像加速
    mkdir -p /etc/docker
    cd /etc/docker
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    
    {"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
    
    
    #手工添加
    cat > daemon.json <<EOF
    {
        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"],
        "insecure-registries": ["docker02:35000"],#内网dockerhub地址
    #    "max-concurrent-downloads": 20,
    #    "live-restore": true,
    #    "max-concurrent-uploads": 10,
    #    "debug": true,
    #    "data-root": "${DOCKER_DIR}/data",
    #    "exec-root": "${DOCKER_DIR}/exec",
    #    "log-opts": {
    #      "max-size": "100m",
    #      "max-file": "5"
    }
    EOF
    #重启服务
    systemctl restart docker
    

    阿里云加速器

    注册阿里云账号,专用加速器地址获得路径:

    https://cr.console.aliyun.com/#/accelerator
    

    添加加速器到配置文件

    sudo tee /etc/docker/daemon.json <<-‘EOF‘
    {
      "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
    }
    EOF
    

    阿里云页面有操作步骤

    启动docker服务

    #重载docker启动配置
    systemctl daemon-reload 
    #将docker设为开机自启
    systemctl start docker.service
    #启动docker服务
    systemctl enable docker.service
    

    检查服务运行状态

    #确保状态为 `active (running)`
    systemctl status docker|grep Active
    #否则查看日志,确认原因
    journalctl -u docker
    #检查 docker0 网桥
    /usr/sbin/ip addr show flannel.1 && /usr/sbin/ip addr show docker0
    #查看 docker 的状态信息
    ps -elfH|grep docker
    #查看 docker 的详细信息
    docker info
    
  • 相关阅读:
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    背景图
    C语言II作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I博客作业12
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/13143183.html
Copyright © 2011-2022 走看看