docker端口映射详解(随机端口、指定IP端口、随意ip指定端口、指定ip随机端口)

目录

docker端口映射详解

一、端口映射概述:

二、案例实验:

1、-P选项,随机端口

2、使用-p可以指定要映射到的本地端口。

Local_Port:Container_Port,任意地址的指定端口

Local_IP:Local_Port:Container_Port  映射到指定地址的指定端口

Local_IP::Container_Port  映射到指定地址,但是宿主机端口是随机分配的

3、指定传输协议:TCP


docker端口映射详解

一、端口映射概述:

        在Docker中容器默认是无法与外部通信的,需要在启动命令中加入对应的参数才允许容器与外界通信。

        当Docker中运行一个Web服务时,需要把容器内的Web服务应用程序端口映射到本地宿主机的端口。这样,用户访问宿主机指定的端口的话,就相当于访问容器内部的Web服务端口。

二、案例实验:

1、-P选项,随机端口

使用-P选项时Docker会随机映射一个端口至容器内部的开放端口

[root@docker ~]# docker run -d -P --name nginx-test1 nginx

使用docker port可以查看端口映射情况

[root@docker ~]# docker port nginx-test1

访问测试:192.168.100.131:32768

[root@docker ~]# docker logs nginx-test1

查看映射的随机端口范围

[root@docker ~]#

cat /proc/sys/net/ipv4/ip_local_port_range

2、使用-p可以指定要映射到的本地端口。

Local_Port:Container_Port,任意地址的指定端口

        端口映射参数中指定了宿主机的8000映射到容器内部的80端口,可以多次使用-p选项

[root@docker ~]# docker run -d -p 8000:80 --name nginx-test2 nginx

访问测试:192.168.100.131:8000

        这种方式会映射到所有接口地址,所有访客都可以通过宿主机所有IP的端口来访问容器。

如下:查看宿主机当前的ip地址

访问测试:192.168.59.153:8000

Local_IP:Local_Port:Container_Port  映射到指定地址的指定端口

[root@docker ~]# docker run -d -p

192.168.100.131:9000:80 --name nginx-test3 nginx

访问测试:192.168.100.131:9000

访问测试:192.168.59.153:9000

Local_IP::Container_Port  映射到指定地址,但是宿主机端口是随机分配的

[root@docker ~]# docker run -d -p 192.168.100.131::80 --name nginx-test4 nginx

[root@docker ~]# docker port nginx-test4

访问测试:192.168.100.131:32770

3、指定传输协议:TCP

[root@docker ~]# docker run -d -p 80:80/tcp --name nginx-test5 nginx

[root@docker ~]# docker port nginx-test5

访问测试:192.168.100.131:80

猜你喜欢

转载自blog.csdn.net/2302_77582029/article/details/132106326