Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。
外部访问容器
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。
-
-P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。
-
-p 标记时,需要指定一个宿主服务器端口到内部容器中需要映射的端口。
如 , 后台运行一个容器并且随机分配:
Docker run -d -P linuxserver/Nginx 一个端口
后台运行一个 Tomcat 容器并且把容器 8080 端口映射到宿主机器上的 8010 端口,这样外部可以通过 8010 端口访问到该容器服务程序。
Docker run -d -p 8010:8080 Tomcat
容器互联
在使用 Docker 构建各种服务的容器时,容器之间是互相隔离的,无法直接访问的,但是往往在实际应用中,我们经常需要容器之间能够互相访问,如:Nginx 容器作为负载均衡,需要能访问到 Tomcat 容器,才能把请求转发到 Tomcat 服务中;因此 Docker 提供了网络,让处于同一网络中的所有容器都是可以互联的。
- 创建一个网络
Docker network create -d bridge 网络名称
- 容器加入到网络中
Docker run -d -p 8010:8080 --network 网络名 Tomcat
- 查看网桥信息
Docker network inspect 网络名称
- 查看容器端口映射情况
Docker port 容器ID
- 查看端口映射配置
Docker port nostalgic_morse 端口
网友评论