1.端口映射介绍
Docker端口映射是指将容器内部的端口与宿主机的端口关联起来,这样可以从宿主机外部访问容器内的服务。默认情况下,容器内的端口仅对容器内的进程可见,无法从宿主机外部访问。端口映射使得外部网络可以通过宿主机上的一个端口访问容器内的服务。
2.端口映射案例
#最常见的写法,将容器的80端口映射到宿主机的88端口。
docker container run -d -p 88:80 nginx:1.20.1
#端口映射指定协议为tcp,默认情况下,使用就是tcp,因此通常对于tcp的服务可以不指定。
docker container run -d -p 89:80/tcp nginx:1.20.1
#端口映射指定为udp,对于服务本身使用的是udp协议的服务而言,此处需要显式指定。
docker container run -d -p 53:53/udp nginx:1.20.1
#将端口映射明确绑定到具体的网卡上。
docker container run -d -p 10.0.0.101:99:80/tcp nginx:1.20.1
#将端口映射明确绑定到具体的网卡上,并且宿主机的端口是随机的。
docker container run -d -p 10.0.0.101::80/tcp nginx:1.20.1
#端口范围映射,将宿主机的20,21端口映射到容器的20,21端口。
docker container run -idp 10.0.0.101:20-21:20-21 alpine
#映射连续的端口,可以使用多个-p参数即可。
docker container run -idp 127.0.0.1:9200:9200 -p 10.0.0.101:9300:9300 alpine
#随机端口映射,随机指定端口
docker container run -dP nginx:1.20.1
3.总结
标签:container,宿主机,端口,几种,run,docker,端口映射 From: https://blog.csdn.net/qq_37182070/article/details/140656966(1)对短选项进行合并时,需要注意短选项是否需要传参数,若需要穿参数,应该尽量往后靠;
(2)当我们使用-p选项时,会自动进行端口映射,底层对应的是iptables的DNAT规则;
(3)若有多个不连续的端口进行映射时,需要写多个"-p"选项即可;
(4)使用"-P"(大写)时会自动进行端口映射,这个容器映射的端口取决于镜像对外暴露的服务端口(EXPOSE指令);
(5)端口映射的语法格式为"-p 宿主机的IP地址:宿主机的端口号:容器的端口号:协议"。
(6)docker外部节点访问容器时,底层采用的是DNAT技术,而容器访问外部服务,采用的是forward转发功能哟,并没有使用SNAT技术;