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的端口到内部容器开放的网络端口
1.2 将容器端口映射到宿主机上。
1.2.1 将容器端口映射到随机宿主机端口
docker run -itd --name mynginx -p 8001 nginx:latest
以上指令会将容器的8001端口随机映射到宿主机的一个端口上。
1.2.2 将容器端口映射到指定宿主机端口
docker run -itd --name mynginx -p 80:80 nginx:latest
以上指令会将容器的80端口映射到宿主机的一个端口上。
1.2.3 将容器多对端口映射到指定宿主机多对端口
多次使用-p标记可以绑定多个端口。例如:
docker run -itd -p 80:80 -p 8100:8100 --name mynginx nginx:latest
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端口上。
1.2.4 将容器指定ip和任意端口,随机映射到宿主机指定主机端口上。
docker run -itd -p 127.0.0.1::80 --name mynginx nginx:latest
以上指令会将容器的指定ip 127.0.0.1和任意端口,随机映射到宿主机的一个80端口上。
1.3 查看映射端口
使用docker port来查看当前映射的端口配置,也可以查绑定的地址。
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
评论区