docker network config
可以使用netns命令(在iproute包里)来模拟建立虚拟网卡和虚拟空间的建立,链接,通信等
每个container包含6种名称:
UTS ,User ,Mount ,IPC, Pid, Net
虚拟化网络:
模拟交换机分配IP的方式,为容器分配ip,且为两头的形式,一头是分配给容器,一头分配给虚拟交换机
docker 有四种网络模型,默认为第二种
分别是:closed constainer,只使用loopback interface
bridged container,同时有loopback interface和private interface,使用Docker bridge virtual interface
joined container A joined container B使用同一组loopback interface和private interface,使用联合接口链接到
open container,使用物理网卡通信

查看网络:
docker network inspect bridge
docker container inspect web1(也就是容器名称)
建立桥接网络容器:
docker run --name t1 -it --network bridge --rm busybox:latest
建立closed container
docker run --name t1 -it --network none busybox:latest
建立指定主机名的容器
docker run --name t1 -it --network bridge -h myhost --rm busybox:latest
增加dns的配置
docker run --name t1 -it --network bridge -h myhost --dns 114.114.114.114 --rm busybox:latest
指定dns search
docker run --name t1 -it --network bridge -h myhost --dns 114.114.114.114 --dns-search baidu.com --rm busybox:latest
注入主机信息到/etc/hosts
docker run --name t1 -it --network bridge -h myhost --dns 114.114.114.114 --dns-search baidu.com --add-host www.baidu.com:1.1.1.1 --rm busybox:latest
opening inbound container --容器网络发布
-p containerport
docker run --name b1 -d --rm -p 80 mage/httpd:v2
-p HostPort:ContainerPort
docker run --name b1 -d --rm -p 172.17.0.15::80 mage/httpd:v2
docker run --name b1 -d --rm -p 80:80 mage/httpd:v2
-p host:port:ContainerPort
docker run --name b2 -d --rm -p 172.16.0.15:8080:80 mage/httpd:v2
查看容器ip和端口
docker port myweb
创建联盟容器
1. 先创建第一个容器,和普通容器一样
docker run --name b1 -it --rm busybox
2. 接着创建第二个容器,命令和普通的不同,增加了参数 --network container:b1
docker run --name b2 -it --network container:b1 -it --rm busybox
3. 可以看到2个容器共享了一组网络地址信息
使用wget -O - -q 127.0.0.1访问同一组网络地址内的进程
建立基于host网络的容器
docker run --name b3 -it --rm --network host mage/httpd:v2
自定义docker0桥的网络属性信息:/etc/docker/daemon.json文件
{
"bip": "192.168.1.10", ##这个是物理机的ip
"fixed-cidr": "10.20.0.0/16", ## 新的网段信息
"fixed-cidr-v6": "2001:db8::/64",
"mtu": 1500,
"default-gateway": "10.20.1.1",
"default-gateway-v6": "2001:db8:abcd::89",
"dns": ["10.20.1.2","10.20.1.3"]
}
docker 守护进程的C/S默认仅监听unix socket地址,如果使用套接字,配置如下:
/etc/docker/daemon.json文件增加如下内容,使用逗号分割
"hosts": ["tcp:0.0.0.0:2375","unix:///var/run/docker.sock"]
客户端访问要使用参数-H 或者--host,例如:docker 192.168.1.10:2375 image ls
浙公网安备 33010602011771号