docker容器之间为什么要组建局域网?
- 为了方便容器之间直接进行通信
- 避免宿主机的端口占用
docker容器之间没有局域网,怎么进行通信?
需要宿主机与容器建立一个端口映射,如: 将宿主机的8080端口,映射到B容器的80端口,C容器想与B容器通信,就得通过宿主机的8080端口进行
如何建立容器之间的局域网
查看已有的network
docker network ls
创建新的network
docker network create docker-network
docker-network
是网络的名称
创建容器,并加入docker-network
容器启动时就加入指定网络
docker run --name docker-nginx -d --network docker-network --network-alias nginx-network nginx
--network docker-network: 表示这个容器要连接到 docker-network 这个网络
--network-alias 表示这个容器在此网络中的名称为 nginx-network,也可以使用--ip来指定容器的ip
容器启动后手动指定加入指定网络
docker network connect docker-network
容器之间就可以通过别名访问了, 如果没有指定别名,则直接通过容器名访问
以nginx反向代理为例
location / {
proxy_pass http://wp-network:80/;
}
查看网络连接情况
docker network inspect docker-network