Docker 橋接實體網路&pipework

流程概述

  1. 安裝 Docker
  2. 安裝 pipework
  3. 設置 bridge
  4. 刪除 docker0
  5. 設置 Docker 預設 bridge
  6. 建立 Container (ex: nginx)
  7. 執行 pipework

Ubuntu 安裝 Docker

1
curl -sSL https://get.docker.com/ | sudo sh

安裝 pipework

1
2
3
git clone https://github.com/jpetazzo/pipework.git
sudo cp -rp pipework/pipework /usr/local/bin/
sudo apt-get install arping bridge-utils -y

設置 Bridge

/etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
dns-nameservers 8.8.8.8

啟用 bridge

1
ifup br0

刪除 docker0

1
2
3
service docker stop
sudo ip link set dev docker0 down
sudo brctl delbr docker0

設置 Docker 預設 bridge

/etc/default/docker
1
DOCKER_OPTS="-b=br0"
1
service docker start

建立 Container (ex: nginx)

  1. –net=none
    1
    sudo docker run --net=none --name Container名稱 -v ~/docker/nginx01/html:/usr/share/nginx/html:ro -d nginx)

執行 pipework

  1. 預設 pipework 是建立 eth1 網卡,所以必須指定網卡名稱
    1
    pipework br0 -i eth0 <Container名稱> 192.168.1.100/24@192.168.1.1