Docker网络

89 阅读1分钟

Docker网络

bridge

在主机上创建一个叫Docker0的虚拟网桥,在Docker0创建一对虚拟网卡,有一半在主机上vthxxx,还有一半在容器内eth0

截屏2023-08-21 15.33.05.png

直接用bridge不能通过容器名称互ping,需要通过IP。可通过--link链接来解决(基于hosts实现)

host

容器不再拥有自己的网络空间,而是与主机共享网络空间,容器对应的IP与主机同一个子网,同一个网关

截屏2023-08-21 15.44.57.png

none

docker会拥有自己的网络空间,但不与主机共享,容器不会被分配网卡,IP路由等相关信息。 特点:完全隔离

截屏2023-08-21 15.49.59.png

container

不会创建自己的网络空间,而是与其他容器共享网络空间。直接使用指定容器的IP/端口等

自定义(推荐)

docker network ...

跨网络连接

截屏2023-08-27 08.17.36.png

docker network connect net2 c1net2是网络名,c1是容器名

创建网络

docker network create --gateway 192.168.12.1 --driver bridge --subnet 192.168.12.0/24 mynetwork

查看网络

docker network ls

查看网络基础信息

docker network inspect 网络名称/网络ID

启动容器并指定网络

docker run -d --rm -P --net mynetwork --name nginx01 nginx

防止容器结束

docker run -d --rm -P --net mynetwork --name centos01 centos ping 127.0.0.1

容器之间互ping

docker exec -it centos01 ping centos02