docker容器间的网络连接
docker容器间的网络连接
概述
容器间的连接方式目前了解到的有两种。
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 network --help
docker network ls
docker network create
docker network inspect 网络名