赞
踩
需要通过修改docker.service文件来使DOCKER_OPTS参数生效,
由于Docker版本不同docker.service文件路径及内容可能会有差异,所以可能需要以下两种方法之一
/usr/lib/systemd/system/docker.service
配置docker.service的时候,EnvironmentFile的文件默认配置了/etc/sysconfig/docker
(基本配置)、/etc/sysconfig/docker-storage
(存储)、/etc/sysconfig/docker-network
(网络),我们想要/etc/default/docker
生效,我们就需要添加EnvironmentFile=-/etc/default/docker
,让后在ExecStart这个配置中,添加引用的参数$DOCKER_OPTS
,下面就是我的配置文件/usr/lib/systemd/system/docker.service
- #修改配置文件
- vi /usr/lib/systemd/system/docker.service
- [Unit]
- Description=Docker Application Container Engine
- Documentation=http://docs.docker.com
- After=network.target
- Wants=docker-storage-setup.service
- Requires=docker-cleanup.timer
-
- [Service]
- Type=notify
- NotifyAccess=all
- KillMode=process
- #添加我们自定义的配置文件
- EnvironmentFile=-/etc/default/docker #添加配置文件,(-代表ignore error)
- EnvironmentFile=-/etc/sysconfig/docker
- EnvironmentFile=-/etc/sysconfig/docker-storage
- EnvironmentFile=-/etc/sysconfig/docker-network
- Environment=GOTRACEBACK=crash
- Environment=DOCKER_HTTP_HOST_COMPAT=1
- Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
- ExecStart=/usr/bin/dockerd-current \
- --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
- --default-runtime=docker-runc \
- --exec-opt native.cgroupdriver=systemd \
- --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
- $OPTIONS \
- $DOCKER_STORAGE_OPTIONS \
- $DOCKER_NETWORK_OPTIONS \
- $ADD_REGISTRY \
- $BLOCK_REGISTRY \
- $INSECURE_REGISTRY \
- $DOCKER_OPTS #需要引用的参数,也是网卡设定参数
- ExecReload=/bin/kill -s HUP $MAINPID
- LimitNOFILE=1048576
- LimitNPROC=1048576
- LimitCORE=infinity
- TimeoutStartSec=0
- Restart=on-abnormal
- MountFlags=slave
-
- [Install]
- WantedBy=multi-user.target
- EnvironmentFile=-/etc/default/docker
修改以后,需要重载,然后重启服务才可以使用/etc/default/docker里定义的DOCKER_OPTS参数
- #重载
- systemctl daemon-reload
- #重启docker服务
- service docker restart
- vi /etc/sysconfig/docker
- DOCKER_OPTS="-b=br0"
-
- #或者直接写数据
- echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker
- #安装网桥工具
- yum install bridge-utils
-
- #添加网桥
- brctl addbr br0
-
- #查看网桥
- brctl show
-
- #设定网桥地址和子网掩码
- ifconfig br0 192.168.110.1 netmask 255.255.255.0
-
- #设定网桥
- echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker
- #配置docker
- vi /usr/lib/systemd/system/docker.service
- #添加我们自己的配置文件
- EnvironmentFile=-/etc/sysconfig/docker
- #应用参数
- ExecStart=/usr/bin/dockerd-current \
- --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
- --default-runtime=docker-runc \
- --exec-opt native.cgroupdriver=systemd \
- --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
- $OPTIONS \
- $DOCKER_STORAGE_OPTIONS \
- $DOCKER_NETWORK_OPTIONS \
- $ADD_REGISTRY \
- $BLOCK_REGISTRY \
- $INSECURE_REGISTRY \
- $DOCKER_OPTS #添加网桥的参数
-
- #重载
- systemctl daemon-reload
- #重启docker服务
- service docker restart
修改成功 后的网桥信息
查看网桥数据
网桥修改成功后,网卡的网段和子网掩码都修改了
1.编辑并修改
vi /lib/systemd/system/docker.service 文件 添加一行
EnvironmentFile=-/etc/default/docker(-代表ignore error)
并修改ExecStart=/usr/bin/docker daemon -H fd://
改成
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
这样才可以使用/etc/default/docker 里定义的DOCKER_OPTS参数
2.重新加载并重启docker服务
1) 重载
systemctl daemon-reload --->重载
2)重启docker服务
service docker restart
注:如果重载后重启docker出错:
这时应该去检查/etc/default/docker文件中发参数是否书写正确,如果是正确的那应该启动是正常的。
原文地址:https://blog.csdn.net/yelllowcong/article/details/76405191
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。