环境说明
宿主机网卡信息:
name: eth0
IP: 10.211.55.11
GATEWAY: 10.211.55.1
DNS:192: 10.211.55.1
新建桥接网卡
- 停止docker服务
# service docker stop
- 删除docker0网卡
# ip link set dev docker0 down
# brctl delbr docker0
- 新建桥接物理网络虚拟网卡br0
# brctl addbr br0
# ip link set dev br0 up
# ip addr add 10.211.55.100/24 dev br0 #为br0分配物理网络中的ip地址
- 启用新的网卡br0
# ip link set dev br0 up
查看网卡信息
# ip addr show br0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:1c:42:b8:09:57 brd ff:ff:ff:ff:ff:ff
inet 10.211.55.100/24 scope global br0
valid_lft forever preferred_lft forever
inet6 fdb2:2c26:f4e4:0:21c:42ff:feb8:957/64 scope global mngtmpaddr dynamic
valid_lft 2591495sec preferred_lft 604295sec
inet6 fe80::d0fb:20ff:feb3:1c4/64 scope link
valid_lft forever preferred_lft forever
- 设置docker服务启动参数
# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --selinux-enabled -b=br0 --registry-mirror=https://v2kdqv13.mirror.aliyuncs.com
- 启动docker服务
# systemctl daemon-reload
# service docker restart
# service docker start
不同主机间容器通信
不同容器之间的通信可以借助于 pipework 这个工具:
$ git clone https://github.com/jpetazzo/pipework.git
$ sudo cp -rp pipework/pipework /usr/local/bin/
- 安装相应依赖软件
$ sudo yum install iputils-arping bridge-utils -y
- 新建容器,如gitlab
$ sudo docker run --detach \
--hostname gitlab-centos-linux \
--name gitlab \
--restart always \
--volume /data/gitlab/config:/etc/gitlab:Z \
--volume /data/gitlab/logs:/var/log/gitlab:Z \
--volume /data/gitlab/data:/var/opt/gitlab:Z \
gitlab/gitlab-ce:latest
注意此时新建的容器虽然运行起来了,但是是没有网络连接的,我们需要借助pipework
工具为容器手动设置ip。
- 为容器设置ip
$ sudo pipework br0 gitlab 10.211.55.102/24@10.211.55.100
说明:
- 10.211.55.102/24: 为gitlab容器指定的静态ip
- 10.211.55.100: 网关地址,也就是宿主机br0网卡的地址
网友评论