Docker実戦のカスタムブリッジ
Dockerカスタムブリッジ
一.ブリッジ管理ツールのインストール
1.ubuntuシステム
2.Centosシステム
デフォルトでは、dockerが起動するとlinuxのカーネルにネットワークインタフェースが作成され、構成されます.dockerが起動して実行されている場合、デフォルトでは
現在のブリッジと接続ブリッジのNICを表示します.
二.独自のブリッジを作成し、dockerに新しいブリッジを使用するように指定します.
まず、dockerサービスを停止し、docker 0ブリッジを削除します.
カスタムブリッジを作成するには
カスタムブリッジが正常に動作しているかどうかを確認
三.構成を変更し、dockerのデフォルトで新しいブリッジを使用するように設定します.
起動パラメータの変更
1.ubuntuシステム
2.Centosシステム
修正
次のようになります.
四.Reload daemon
五.dockerの起動
一.ブリッジ管理ツールのインストール
1.ubuntuシステム
apt-get install bridge-utils
2.Centosシステム
yum install bridge-utils
デフォルトでは、dockerが起動するとlinuxのカーネルにネットワークインタフェースが作成され、構成されます.dockerが起動して実行されている場合、デフォルトでは
docker0
のブリッジが作成され、構成されます.現在のブリッジと接続ブリッジのNICを表示します.
brctl show
➜ ~ brctl show
bridge name bridge id STP enabled interfaces
br-89dfec96b8c7 8000.0242a580a633 no
docker0 8000.02428cbcb83d no vetha24f64d
vethbb782cf
二.独自のブリッジを作成し、dockerに新しいブリッジを使用するように指定します.
まず、dockerサービスを停止し、docker 0ブリッジを削除します.
# docker , docker0
systemctl stop docker
ip link set dev docker0 down
brctl delbr docker0
iptables -t nat -F POSTROUTING
カスタムブリッジを作成するには
brctl addbr bridge0
ip addr add 172.16.xx.1/24 dev bridge0
ip link set dev bridge0 up
カスタムブリッジが正常に動作しているかどうかを確認
ip addr show bridge0
4: bridge0: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:8c:bc:b8:3d brd ff:ff:ff:ff:ff:ff
inet 172.16.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:8cff:febc:b83d/64 scope link
valid_lft forever preferred_lft forever
三.構成を変更し、dockerのデフォルトで新しいブリッジを使用するように設定します.
起動パラメータの変更
1.ubuntuシステム
echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
2.Centosシステム
echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/sysconfig/docker
systemctl
起動構成の変更 :/lib/systemd/system/docker.service
➜ ~ vim /lib/systemd/system/docker.service
[Service]
モジュールにパラメータを追加します.EnvironmentFile=-/etc/{default or sysconfig}/docker
修正
ExecStart
末尾にパラメータ$DOCKER_OPTS
を追加し、実行時/etc/{default or sysconfig}/docker
ファイルDOCKER_OPTS
パラメータ内容を$DOCKER_OPTS
に置き換えますExecStart=/usr/bin/dockerd $DOCKER_OPTS
次のようになります.
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
EnvironmentFile=-/etc/default/docker #
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd $DOCKER_OPTS
#ExecStart=/usr/bin/dockerd --insecure-registry 10.1.64.179:8050
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
四.Reload daemon
➜ ~ systemctl daemon-reload
五.dockerの起動
➜ ~ systemctl start docker