docker容器间的网络连接

  • 概述
  • Legacy Linking
  • 连接步骤
  • 命令
  • Bridge Network
  • 连接步骤
  • 命令
  • 示例
  • 相关命令

概述

容器间的连接方式目前了解到的有两种。
Legacy Linking:使用容器名进行连接,实际上它创建了一个桥接的网络,在这个网络里,容器之间可以相互通信。
Bridge Network:这种方式创建了一个自定义的桥接网络,它的类型是isolated network(隔离网络),只有在这个网络里的的容器才能相互通信。

Legacy Linking

连接步骤

  • 运行一个容器,需要给容器起一个名字(–name xxx)
  • 其他容器,通过容器名连接正在运行的容器。如:aspnet core 连接sqlserver,web应用数据库连接字符串的host指定为sqlsever的容器名即可(假设sqlserver运行在容器内)。

命令

运行容器一:
docker run -d -p xxxx:xxxx -e xxxx --name xxxx imageName 运行容器二(连接容器一):
docker run -d -p xxxx:xxxx --link xxxx:yyyy imageName

PS:--link xxxx:yyyy xxxx是容器一的容器名,yyyy容器二指定容器名,可以通过建立两者的映射。当然也可以直接使用同样的名字,那么命令直接--link xxxx即可。

Bridge Network

适用于创建隔离的网络。

连接步骤

  • 创建一个自定义的桥接网络
  • 让容器运行在自定义的桥接网络内(一个容器可以运行在多个网络中)。
  • 容器之间通过容器名进行连接

命令

创建自定义的桥接网络:
docker network create --driver bridge 网络名 运行容器并将其加入到自定义的网络中:
docker run -d --net=网络名 --name 网络内的容器名 镜像名

示例

将容器加入到自定义的网络后,可通过命令(docker network inspect 网络名)查看网络里容器的信息,如图:

docker没有网络 docker的网络连接方式_桥接

相关命令

docker network --help
docker network ls
docker network create
docker network inspect 网络名