centos7宿主机上建立Docker桥接物理网络过程

96
Devid
2017.05.10 11:56* 字数 197

环境说明

宿主机网卡信息:
name: eth0
IP: 10.211.55.11
GATEWAY: 10.211.55.1
DNS:192: 10.211.55.1

新建桥接网卡

  1. 停止docker服务
# service docker stop
  1. 删除docker0网卡
# ip link set dev docker0 down
# brctl delbr docker0
  1. 新建桥接物理网络虚拟网卡br0
# brctl addbr br0
# ip link set dev br0 up
# ip addr add 10.211.55.100/24 dev br0 #为br0分配物理网络中的ip地址
  1. 启用新的网卡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
  1. 设置docker服务启动参数
# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --selinux-enabled -b=br0 --registry-mirror=https://v2kdqv13.mirror.aliyuncs.com
  1. 启动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/
  1. 安装相应依赖软件
$ sudo yum install iputils-arping bridge-utils -y
  1. 新建容器,如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。

  1. 为容器设置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网卡的地址
运维笔记
Web note ad 1