docker 端口映射 有点蒙圈 谁给解释一下
ringa_lee
ringa_lee 2017-04-25 09:01:39
0
3
2982

docker 端口映射 有点蒙圈 谁给解释一下

ringa_lee
ringa_lee

ringa_lee

Antworte allen(3)
淡淡烟草味

容器间互相访问需在容器创建时使用--link参数,并且最好被连接的容器已经命名过。

docker run --name mysql .......
docker run --name php --link mysql .......
docker run --name nginx --link php .......

以这种方式启动时,只需要在程序内使用对应的容器名即可访问相应的服务。
例如 fastcgi_pass php:9000;

如果是对外暴露端口,需要通过-p或者-P参数,最好使用-p。
docker run --name nginx -p 80:80 -p 443:443 .......
这样浏览器就能访问到这台服务器提供的Web服务了。

大家讲道理

端口映射:
就是选择一个你本机的端口映射到你的容器的一个端口,这样若有请求来到,访问你本机的那个被映射的端口,这个时候就会将请求转发到容器的那个端口,依靠容器里的服务来处理请求。

为什么要有端口映射?
你的本机IP是个公网ip,例如1.2.3.4;但是本机的容器的ip是个虚拟ip,例如172.17.0.2。外界是没法直接访问你的容器的服务的,这个时候就通过访问本机的端口来达到使用容器中服务的目的。

我想大声告诉你

不知道所谓的“蒙圈”具体是指什么。
简单的说类似于NAT的原理,如果需要宿主机网络能够访问到容器提供的服务,需要将容器的端口暴露在宿主机网络中。
常用语法是在运行"都docker run"时带上参数"-p host_port:container_port"。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage