Docker 端口映射(十)

Docker 端口映射(十)

Scroll Down

1. Docker端口映射

docker容器在启动的时候,如果需要外网访问就需要,制定映射端口。

端口映射可使用-p、-P来实现:

  • -p指定要映射的端口,一个指定端口上只可以绑定一个容器
  • -P将容器内部开放的网络端口随机映射到宿主机的一个端口上

-p(小写的)则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。 端口映射支持的格式:

  • ip:hostport:containerport #指定ip、指定宿主机port、指定容器port
  • ip::containerport #指定ip、未指定宿主机port(随机)、指定容器port
  • hostport:containerport #未指定ip、指定宿主机port、指定容器port

端口的映射有以下五种方法:

1.1 将容器暴露的所有端口,都随机映射到宿主机上。

例如:(不推荐使用)

docker run -P -itd centos:latest /bin/bash 

定端口映射。当使用-p(大写的)标记时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口

image.png

1.2 将容器端口映射到宿主机上。

1.2.1 将容器端口映射到随机宿主机端口

docker run -itd --name mynginx -p 8001 nginx:latest 

以上指令会将容器的8001端口随机映射到宿主机的一个端口上。

image.png

1.2.2 将容器端口映射到指定宿主机端口

docker run -itd --name mynginx -p 80:80 nginx:latest 

以上指令会将容器的80端口映射到宿主机的一个端口上。

image.png

1.2.3 将容器多对端口映射到指定宿主机多对端口

多次使用-p标记可以绑定多个端口。例如:

docker run -itd -p 80:80 -p 8100:8100  --name mynginx nginx:latest 

image.png

1.2.3 将容器指定”地址+端口“指定映射到宿主机的一个端口上。

可以使用 ip:hostport:containerport 格式指定映射使用一个特定地址

docker run -itd -p 127.0.0.1:8001:80 --name mynginx nginx:latest 

以上指令会将容器的127.0.0.1:8001端口映射到宿主机的80端口上。

image.png

1.2.4 将容器指定ip和任意端口,随机映射到宿主机指定主机端口上。

docker run -itd -p 127.0.0.1::80 --name mynginx nginx:latest 

以上指令会将容器的指定ip 127.0.0.1和任意端口,随机映射到宿主机的一个80端口上。

image.png

1.3 查看映射端口

使用docker port来查看当前映射的端口配置,也可以查绑定的地址。

docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

image.png

61231295_p0_master1200.jpg