Skip to content

docker网络

网络

服务器

image

  • io:本机回环地址 127.0.0.1
  • eth0:服务器的内网地址 172.16.0.17
  • docker0:172.17.0.1 【只要安装docker,该网卡会自动安装,用于桥接外网】

容器内

docker run -it --name=centos01 IMAGES-ID /bin/bash

docker exec -it centos01 ip addr

image

结论

  1. 每启动一个容器,docker就会给容器分配一个ip. 跟docker0的网段保持一致(即: 172.17.x.x),宿主机可以ping通容器网络.

image

  1. docker0起着桥接各容器网卡的作用, 因此容器之间分配的ip可以互ping. 如果需要ping容器名, 则需要使用--link命令(已不推荐使用)

image

Docker四种网络模式

bridge模式(默认)

会为每个容器分配一个独立的Network Namespace()

  • 同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的

  • bridge为默认模式,不需要使用参数--net去指定

host模式

docker run时指定参数 --net=host,容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口【-p参数将无效】

none模式

docker run时指定参数 –-net=none 指定,容器没有网卡、IP、路由等信息

docker run时指定参数 –net=container 指定,新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享

进阶

自定义网络(容器互联)

不同网络连通