美文网首页
docker容器的二进制安装

docker容器的二进制安装

作者: NLBSN | 来源:发表于2019-04-01 20:37 被阅读0次

    docker版本:docker-18.06.0-ce

    大纲:
    一、为什么要采用二进制安装
    二、二进制的安装包的下载
    三、二进制安装包的安装步骤
    四、小tips
        1、docker默认网卡网段的修改
        2、docker版本13和18的一个差别----文件挂载

    一、为什么要采用二进制安装

        网上有很多的docker的安装教程,我也原来写过关于docker的安装(CSDN),但最近在部署使用docker的过程中,发现有很多的配置还是需要学习并注意的。所以再写一次并方便自己日后进行补充。
        使用二进制部署的实际场景:
            1、在open suse12的系统上安装部署过。(备注:docker官方只提供了在suse12上的docker ee的版本,没有docker ce的版本,虽然suse的仓库中存在docker的rpm安装包,博主也下载了,但实际安装时并未安装成功,而采用的二进制docker包部署上了)
            2、在没有外网的环境中并且没有yum源时,部署过。
            3、这篇文章从开始编写,到发布,拖得太久了,貌似脱了有一个月的时间,以后有文章最多不超过3天写完,导致要写的好多东西都忘记了。

    二、二进制安装包的下载

        首先打开 https://www.docker.com/

    docker的主页 docker的文档 docker二进制链接的获取

            docker二进制文件的下载链接: https://download.docker.com/linux/static/stable/

    三、二进制安装包的安装步骤

        模拟一个局域网,信息中心要求把相关的软件包和数据放到固定的路径的一个环境。
        安装非常的简单,就是把二进制的可执行包放到被要求的固定的路径下,然后将此路径加到系统的环境变量中,然后自己创建docker.service和daemon.json两个配置文件。
        实际的部署过程
              在这里将二进制的包放到/opt/docker路径下,数据放到/data/docker
        直接上操作步骤

    [root@tag home]# ls
    docker-18.06.0-ce.tgz
    [root@tag home]# tar -zxvf docker-18.06.0-ce.tgz -C /opt/
    docker/
    docker/dockerd
    docker/docker-proxy
    docker/docker-containerd
    docker/docker-runc
    docker/docker-init
    docker/docker-containerd-shim
    docker/docker
    docker/docker-containerd-ctr
    [root@tag home]# 
    [root@tag home]# ls /opt/docker/
    docker  docker-containerd  docker-containerd-ctr  docker-containerd-shim  dockerd  docker-init  docker-proxy  docker-runc 
    [root@tag home]# 
    [root@tag home]# cat > /etc/systemd/system/docker.service <<"EOF"
    [Unit]
    Description=Docker Application Container Engine
    Documentation=http://docs.docker.io
     
    [Service]
    Environment="PATH=/opt/docker:/bin:/sbin:/usr/bin:/usr/sbin"
    EnvironmentFile=-/run/flannel/docker
    ExecStart=/opt/docker/dockerd \
             --graph /data/docker                          ###备注:这里就是docker数据存储的目录设置
             --log-level=error \
              $DOCKER_NETWORK_OPTIONS
    ExecReload=/bin/kill -s HUP $MAINPID
    Restart=on-failure
    RestartSec=5
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    Delegate=yes
    KillMode=process
     
    [Install]
    WantedBy=multi-user.target
    EOF
    [root@tag home]# 
    [root@tag home]# mkdir -p  /etc/docker/
    [root@tag home]# cat > /etc/docker/daemon.json <<EOF        #备注:外网拉取镜像时可用
    {
        "registry-mirrors": ["https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
        "max-concurrent-downloads": 20
    }
    EOF
    [root@tag home]#  cat /etc/docker/daemon.json              #备注:使用内网仓库时可用
    {
        "insecure-registries":["https://内网镜像仓库ip:5000"]
    }
    [root@tag home]#  
    [root@tag home]#  systemctl daemon-reload
    [root@tag home]#  systemctl enable docker 
    [root@tag home]#  systemctl restart docker
    [root@tag home]#  systemctl status docker
    [root@tag home]#  ip a                                 #备注:查看是否多了一张docker0的网卡
    

    四、小tips

        1、docker默认网卡网段的修改

        这里提供两种修改方法:一种是新建一个网桥;另一种是直接修改docker0网卡的网段

        第一种:新建一个网桥
    [root@tag home]#  
    [root@tag home]#  systemctl stop docker
    [root@tag home]#  iptables -t nat -F POSTROUTING            #查看一下防火墙的nat
    [root@tag home]#  ip link set dev docker0 down                    # 删除docker默认网关配置
    [root@tag home]#  ip addr del 172.17.0.1/16 dev docker0
    [root@tag home]#  yum install -y bridge-utils                   #新建一张网卡
    [root@tag home]#  brctl addbr bridge1
    [root@tag home]#  ip addr add 172.18.2.1/24 dev bridge1       # 增加新的docker网关配置
    [root@tag home]#  ip link set dev bridge1 up
    [root@tag home]#  ip addr show bridge1
    [root@tag home]#
    [root@tag home]# cat > /etc/docker/docker-daemon.json <<EOF       #这里你也可以将上面的仓库地址加上
    {
      "bridge": "bridge1"
    }
    EOF
    [root@tag home]# 
    [root@tag home]#  systemctl daemon-reload
    [root@tag home]#  systemctl enable docker 
    [root@tag home]#  systemctl restart docker
    [root@tag home]#  systemctl status docker
    [root@tag home]#  
    
        第二种:直接修改docker0网卡的网段
    [root@tag home]#
    [root@tag home]# cat > /etc/docker/docker-daemon.json <<EOF       #这里你也可以将上面的仓库地址加上
    {
        "bip": "179.2.0.1/16"
    }
    EOF
    [root@tag home]# 
    [root@tag home]#  systemctl daemon-reload
    [root@tag home]#  systemctl enable docker 
    [root@tag home]#  systemctl restart docker
    [root@tag home]#  systemctl status docker
    [root@tag home]#  
    [root@tag home]#  iptables -t nat -L -n
    [root@tag home]#  iptables -t nat -F POSTROUTING
    [root@tag home]#  
    

        2、docker版本13和18的一个差别----文件挂载

        这也是今天去客户那里安装才发现的。在把宿主机的目录挂载到容器内时,使用docker run方式启动容器时,需要添加参数docker run -itd --privileged ...,使用docker-compose方式启动时,需要添加参数privileged: true。
    忘记要写什么了,记得时候再来补充

    相关文章

      网友评论

          本文标题:docker容器的二进制安装

          本文链接:https://www.haomeiwen.com/subject/syicmqtx.html