docker 网络

82 阅读1分钟
  1. 查看本机的网络namespace
sudo ip netns  list
  1. 删除网络namespace
sudo ip netns delete test1
  1. 添加网络namespace
sudo ip netns add test1
  1. 查看网络namespace
sudo ip netns exec test1 ip a
sudo ip netns exec test1 ip link
  1. 让namespace的ip up起来
sudo ip netns exec test1 ip link set dev lo up
  1. 添加一对link接口
sudo ip link add veth-test1 type veth peer name veth-test2
  1. 把link的veth-test1接口添加到test1中
sudo ip link set veth-test1 netns test1
  1. 给veth-test1设置ip地址
sudo ip netns exec test1 ip addr add 192.168.1.1/24 dev veth-test1
  1. 让test1的veth-test1接口up起来
sudo ip netns exec test1 ip link set dev veth-test1 up
  1. 查看本机docker网络情况
sudo docker network ls
  1. 查看网络详情, 6ef8000d3851为网络id
sudo docker network inspect 6ef8000d3851
  1. 检查桥接状态
brctl show

如果不必别brctl命令的话,安装一下bridge-utils

sudo yum install bridge-utils
  1. 创建两个容器直接网络link, test2 link 到test1上
sudo docker run -d --name test2 --link test1 busybox /bin/sh -c "while true; do sleep 3600; done"

这个时候test2 可以直接通过test1的名字连接到test1

  1. 创建bridge
sudo docker network create -d bridge my-bridge
  1. 创建容器指定运行在某个bridge上 --network my-bridge
sudo docker run -d --name test3 --network my-bridge busybox /bin/sh -c "while true; do sleep 3600; done"
  1. 把已经创建好的容器link到bridge上
sudo docker network connect my-bridge test2

主: 自己创建的bridge,上面连接的网络是可以直接通过name进行通讯

  1. 创建overlay网络
docker network create -d overlay demo