社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
docker安装后会自动创建3种原生网络:bridge、host、none。
[root@server1 ~]# docker network ls ##列出docker的网络
docker安装时会创建一个名为 docker0 的Linux bridge。
[root@server1 ~]# ip addr ##查看网卡
[root@server1 ~]# ip addr show docker0 ##查看指定网卡的信息
新建的容器会自动桥接到这个docker0接口。
[root@server1 ~]# yum install -y bridge-utils ##安装网桥管理工具包
[root@server1 ~]# brctl show ##查询网桥信息
bridge模式下,容器没有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的。
容器通过宿主机的NAT规则后可以访问外网。
[root@server1 ~]# docker inspect 容器名/容器id/镜像名 ##获取容器/镜像的元数据
(b68b7cbd6f0为容器id的简写(前面几位))
(运行的容器IP为172.17.0.2)
(容器的虚拟网络)
(宿主机可以直接访问容器)
(容器对于外部主机不可见)
(停止运行容器后,容器虚拟网络自动消失)
(停止运行容器后,bridge自动断开,宿主机就无法访问容器了)
host模式可以让容器共享宿主机网络栈,
优点:外部主机与容器直接通信;缺点:容器的网络缺少隔离性。
host网络模式需要在容器创建时指定--network=host
none模式是指禁用网络功能,只有lo接口,在容器创建时使用--network=none指定
Container 网络模式是 Docker 中一种较为特别的网络的模式。
Docker 容器会共享一个网络栈,这样两个容器之间可以使用localhost高效快速通信。
在容器创建时使用--network=container:vm指定(vm指定的是运行的容器名)
(共享eth0)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!