端口映射的作用
1 允许外部网络访问容器内的服务: 通过将容器内的服务绑定到宿主机上的端口,我们可以使得外部网络可以通过宿主机的 IP 地址和端口号来访问容器内的服务。这样,我们就可以将容器中的服务对外暴露,实现与容器交互或调用容器的功能。
2 解决端口冲突问题: 当我们在同一台主机上运行多个容器时,容器内的服务可能会监听相同的端口。通过端口映射,我们可以将这些容器内的服务绑定到不同的宿主机端口上,避免端口冲突
什么是docker的端口映射
Docker 端口映射允许我们将容器内部的服务绑定到宿主机上的一个或多个端口。通过端口映射,我们可以从外部网络访问容器内的服务
docker端口映射定义
Docker除了通过网络访问外,还提供了其他两个非常方便的功能来满足服务访问的基本需求:
一是允许映射容器内应用的服务端口到本地宿主机端口;
二是使用互联机制来实现多个容器间通过容器名来快速访问
端口映射可使用-p、-P来实现
-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
到此这篇关于docker端口映射的实现示例的文章就介绍到这了,更多相关docker 端口映射内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!