本文介绍 Docker 网络。
官方文档:https://docs.docker.com/engine/userguide/networking/
网络类型
bridge
桥接类型
是创建容器时默认连接的网络类型,用的比较多,这里不再详细介绍。
host
容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口,容器可以和宿主机一样,使用宿主机的 eth0
实现和外界的通信。换言之容器的 IP 地址即为宿主机 eth0 的 IP 地址。
1 | $ docker run -dit --network host nginx:alpine |
现在访问 主机 IP
即可看到 nginx 默认页面。
none
这样创建出来的容器完全没有网络。
1 | $ docker run -it --rm nginx:alpine ip addr |
后边可以通过 docker network connect bridge CONTAINER_ID
来将没有设置网络的容器连接到一个网络。
container:name or id
--network="container:name or id
通过此参数启动的容器,拥有与被连接的容器相同的网络。
创建网络
1 | $ docker network create -d bridge [ --subnet 172.25.0.0/16 ] NETWORK_NAME |
-d
指定网络驱动,默认为 bridge
,在 Swarm mode
中也可以创建 overlay
类型的网络。
查看网络
1 | $ docker network ls |
查看网络详情
1 | $ docker network inspect bridge |
容器连接网络
可以固定容器 IP
1 | $ docker run --network=NETWORK_NAME [ --ip=172.25.3.3 ] ... |
断开网络
1 | $ docker network disconnect NETWORK_NAME CONTAINER_NAME |
移除网络
1 | $ docker network rm NETWORK_NAME |
Swarm mode
1 | $ docker network create \ |
Overlay network
ingress network
The ingress network is created automatically when you initialize or join a swarm.
docker_gwbridge
The docker_gwbridge network is created automatically when you initialize or join a swarm.
设置代理
17.07+
~/.config.json
1 | { |
other
设置环境变量,请查看 官方文档