本文最后更新于2 分钟前,文中所描述的信息可能已发生改变。
在使用Docker部署多个项目的时候,我们可能会想要只对外暴露一个端口来访问我们服务器上的服务,那么我们就可以使用Nginx服务器来进行反向代理,而容器之间通过配置是可以进行相互访问通信的(不需要给每个服务都配置公网ip,在内网中通信)。
docker容器间的相互访问
有三种方式:通过创建容器时分配的ip、通过link、自定义bridge网络。前两种不怎么好用。
通过ip访问
使用命令
docker inspect mycentos7
来查看分配给容器 mycentos7 的ip地址。通过link连接(静态的不好用)
通过自定义bridge网络
创建bridge网络
docker network create mynet
创建名为 mynet 的网络在创建容器时指定参数将容器添加到自定义网络中并指定别名
docker run -di --name=mycentos7 --network=mynet --network-alias=centos7 centos:7
此命令会将容器 mycentos7 加入自定义网络 mynet 中并给容器指定别名 centos7 ,这样在同一个自定义网络 mynet 中的其他容器就可以直接通过ping centos7
来访问容器 mycentos7 而不用通过ip来访问,可以使得当容器ip发生改变时也可以通过该别名访问容器,相比于 link 方式是动态的。查看自定义的bridge网络
docker network ls
列出系统中的全部网络。docker network inspect mynet
查看名为 mynet 的自定义网络信息。删除指定的自定义网络
要删除自定义网络需要先断开绑定到这个网络中的容器,使用命令
docker network disconnect mynet mycentos7
断开自定义 mynet 网络与容器mycentos7之间的连接。删除自定义网络docker network rm mynet
删除了自定义网络 mynet。