赞
踩
1 允许外部网络访问容器内的服务: 通过将容器内的服务绑定到宿主机上的端口,我们可以使得外部网络可以通过宿主机的 IP 地址和端口号来访问容器内的服务。这样,我们就可以将容器中的服务对外暴露,实现与容器交互或调用容器的功能。
2 解决端口冲突问题: 当我们在同一台主机上运行多个容器时,容器内的服务可能会监听相同的端口。通过端口映射,我们可以将这些容器内的服务绑定到不同的宿主机端口上,避免端口冲突
Docker 端口映射允许我们将容器内部的服务绑定到宿主机上的一个或多个端口。通过端口映射,我们可以从外部网络访问容器内的服务
Docker除了通过网络访问外,还提供了其他两个非常方便的功能来满足服务访问的基本需求:
一是允许映射容器内应用的服务端口到本地宿主机端口;
二是使用互联机制来实现多个容器间通过容器名来快速访问
-p指定要映射的端口,一个指定端口上只可以绑定一个容器
-P将容器内部开放的网络端口随机映射到宿主机的一个端口上
- ip:hostport:containerport #指定ip、指定宿主机port、指定容器port
- ip::containerport #指定ip、未指定宿主机port(随机)、指定容器port
- hostport:containerport #未指定ip、指定宿主机port、指定容器port
- # 1 将容器暴露的所有端口,都随机映射到宿主机上。
- (不推荐使用)
-
- docker run -P -it ubuntu /bin/bash
-
- # 2 将容器指定端口随机映射到宿主机一个端口上。
-
- docker run -P 80 -it ubuntu /bin/bash
- 以上指令会将容器的80端口随机映射到宿主机的一个端口上。
-
- # 3 将容器指定端口指定映射到宿主机的一个端口上。
- 例如:
-
- docker run -p 8000:80 -it ubuntu /bin/bash
- 以上指令会将容器的80端口映射到宿主机的8000端口上。
-
- # 4 将容器ip和端口,随机映射到宿主机上
-
- docker run -P 192.168.0.100::80 -it ubuntu /bin/bash
- 以上指令会将容器的ip192.168.0.100和80端口,随机映射到宿主机的一个端口上。
-
- # 将容器ip和端口,指定映射到宿主机上
-
- docker run -p 192.168.0.100:8000:80 -it ubuntu /bin/bash
- 上指令会将容器的ip192.168.0.100和80端口,映射到宿主机的8000端口
-
- docker port container_ID #容器ID
- #结果输出
- 80/tcp -> 0.0.0.0:800
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。