Docker网络
bridge
在主机上创建一个叫Docker0的虚拟网桥,在Docker0创建一对虚拟网卡,有一半在主机上vthxxx,还有一半在容器内eth0
直接用bridge不能通过容器名称互ping,需要通过IP。可通过--link链接来解决(基于hosts实现)
host
容器不再拥有自己的网络空间,而是与主机共享网络空间,容器对应的IP与主机同一个子网,同一个网关
none
docker会拥有自己的网络空间,但不与主机共享,容器不会被分配网卡,IP路由等相关信息。 特点:完全隔离
container
不会创建自己的网络空间,而是与其他容器共享网络空间。直接使用指定容器的IP/端口等
自定义(推荐)
docker network ...
跨网络连接
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