Docker 端口映射详细介绍

 更新时间:2016年10月19日 14:55:44   投稿:lqh  
这篇文章主要介绍了Docker 端口映射详细介绍的相关资料,需要的朋友可以参考下

Docker 端口映射:

         最近抽空,把Docker 端口映射的资料整理了一下,以便后续项目应用,大家也可以参考下。  

# Find IP address of container with ID <container_id> 通过容器 id 获取 ip $ sudo docker inspect <container_id> | grep IPAddress | cut -d '"' -f 4

无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了端口只能本地访问外,对于容器的另外一个问题是这些 ip 在容器每次启动的时候都会改变。
Docker 解决了容器的这两个问题,并且给容器内部服务的访问提供了一个简单而可靠的方法。Docker 通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,Docker 提供了这种连接机制。

5.1 自动映射端口

-P使用时需要指定--expose选项,指定需要对外提供服务的端口

$ sudo docker run -t -P --expose 22 --name server  ubuntu:14.04

使用docker run -P自动绑定所有对外提供服务的容器端口,映射的端口将会从没有使用的端口池中 (49000..49900) 自动选择,你可以通过docker ps、docker inspect <container_id>或者docker port <container_id> <port>确定具体的绑定信息。

5.2 绑定端口到指定接口

基本语法

$ sudo docker run -p [([<host_interface>:[host_port]])|(<host_port>):]<container_port>[/udp] <image> <cmd>

默认不指定绑定 ip 则监听所有网络接口。

 绑定 TCP 端口

# Bind TCP port 8080 of the container to TCP port 80 on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1:80:8080 <image> <cmd> # Bind TCP port 8080 of the container to a dynamically allocated TCP port on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1::8080 <image> <cmd> # Bind TCP port 8080 of the container to TCP port 80 on all available interfaces of the host machine. $ sudo docker run -p 80:8080 <image> <cmd> # Bind TCP port 8080 of the container to a dynamically allocated TCP port on all available interfaces $ sudo docker run -p 8080 <image> <cmd>

绑定 UDP 端口

# Bind UDP port 5353 of the container to UDP port 53 on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1:53:5353/udp <image> <cmd>

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • docker拉取镜像超时解决的问题解决

    docker拉取镜像超时解决的问题解决

    本文解决了由于网络问题导致的Docker拉取中央仓库镜像超时的问题,通过从其他镜像仓库拉取镜像文件来解决这一问题,感兴趣的可以了解一下
    2025-03-03
  • Docker容器无法停止删除的解决方案

    Docker容器无法停止删除的解决方案

    这篇文章主要介绍了Docker容器无法停止删除的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Spring Boot应用通过Docker发布部署的流程分析

    Spring Boot应用通过Docker发布部署的流程分析

    将Spring Boot项目部署到docker中有两种方法,手动部署和插件部署,本文通过实例代码介绍了idea创建spring boot项目的详细过程,感兴趣的朋友一起看看吧
    2021-09-09
  • 如何解决docker容器访问不了外部网络问题

    如何解决docker容器访问不了外部网络问题

    介绍了Docker bridge网络的工作原理,包括虚拟网桥的创建、容器的IP地址分配、IP转发的作用以及NAT的配置,通过配置IP转发和NAT规则,Docker能够实现容器与外部网络之间的通信,文章还提供了解决某个具体问题的步骤
    2024-11-11
  • 使用docker的python基础镜像时要指定patch版本原理

    使用docker的python基础镜像时要指定patch版本原理

    这篇文章主要为大家介绍了使用docker的python基础镜像时要指定patch版本原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Docke实例之搭建gitlab的方法

    Docke实例之搭建gitlab的方法

    本篇文章主要介绍了Docke实例之搭建gitlab的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • docker中容器的网络配置常用命令详解

    docker中容器的网络配置常用命令详解

    这篇文章主要介绍了docker中容器的网络配置常用命令详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Docker+Jenkins+Gitee自动化部署maven项目的实现

    Docker+Jenkins+Gitee自动化部署maven项目的实现

    本文主要介绍了Docker+Jenkins+Gitee自动化部署maven项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 使用Maven和远程Docker基于Dockerfile构建SpringBoot应用镜像

    使用Maven和远程Docker基于Dockerfile构建SpringBoot应用镜像

    本文重点给大家介绍使用Maven和远程Docker基于Dockerfile构建SpringBoot应用镜像的相关操作,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Docker容器的调试技巧之docker logs与docker service logs解读

    Docker容器的调试技巧之docker logs与docker service logs

    这篇文章主要介绍了Docker容器的调试技巧之docker logs与docker service logs,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论