docker容器的二进制安装

2019-04-01  本文已影响0人  NLBSN

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。
忘记要写什么了,记得时候再来补充

上一篇下一篇

猜你喜欢

热点阅读