# 网络

虽然默认情况下容器和容器可以进行网络通信。但是每次创建容器都是Docker给容器分配的IP地址这让我们使用起来不太方便。

这些情况我们都可以创健自定义网络来解决这些问题。把需要互相连通的容器加入到同个网络,这样容器和容器之间就可以过容器名来代替ip地址进行互相访问.

# 创建网络

docker network create 网络名

docker network create my_net

# 列出网络

docker network ls

# 加入网络

# 创建容器时加入

我们可以在容器创建时使用-network选项让容器创建时就加入对应的网络。 docker run --network 网络名 镜像名

# 容器创建后加入

如果容器已经创建了想加入网络可以使用docker network connect命令。 docker network connect 【选项】 网络名 容器名和容器id

docker network connect my_net 57f955c818f9

# 查看方式

  1. 通过网络请求查看
  2. 查看详情

# 查看网络详情

docker network inspect 网络名或网络id

docker network inspect my_net 

加入的网络

# 删除网络

docker network rm 容器名或id

# 网络模式

  • bridge:为每一个容器分配、设置IP等,并将容器连接到一个docker0(虚拟网桥,默认为该模式)。
  • host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
  • none:容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配 veth pair和网桥连接,IP等。
  • container:新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP、端口范围等。