端口映射指:允许映射容器内应用的服务端口到本地宿主主机;
一、从外部访问容器应用
在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的。
在容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射。当使用-P(大写的)标记时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口:
$ docker run -it -P --name HAProxy haproxy /bin/bash //运行容器
$ docker ps // 查看运行汇总容器的信息,在ports中可查看到主机端口
说明
如下:
启动容器时通过-P(大写)发现没有ports被暴露出来(原因可能与镜像有关,有的镜像会暴露出来端口);为了保险,所以后续还是使用
-p(小写) 主机端口:容器端口
来实现容器端口映射到主机端口吧
二、映射所有接口地址
使用 HostPort:ContainerPort
$ docker run -it -p 5000:5000 --name HAProxy haproxy /bin/bash
三、映射到指定地址的指定端口
使用 IP:HostPort:ContainerPort
$ docker run -it -p 127.0.0.1:5000:5000 --name HAProxy haproxy /bin/bash
四、映射到指定地址的任意端口
使用 IP::ContainerPort ,本地主机会自动分配一个端口:
$ docker run -it -p 127.0.0.1::5000 --name HAProxy haproxy /bin/bash
查看映射端口配置
$ docker port containerId/containerName 5000