docker容器的二进制安装
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天写完,导致要写的好多东西都忘记了。
二、二进制安装包的下载
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。
忘记要写什么了,记得时候再来补充