当前位置: 首页 > 编程笔记 >

Docker端口映射的实现

越涛
2023-03-14
本文向大家介绍Docker端口映射的实现,包括了Docker端口映射的实现的使用技巧和注意事项,需要的朋友参考一下

docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。

亦可使用Dockerfile文件中的EXPOSE指令来配置。

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

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

端口映射支持的格式:

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

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

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

例如:(不推荐使用)

docker run -P -it ubuntu /bin/bash 

二、将容器指定端口随机映射到宿主机一个端口上。

例如:

docker run -P 80 -it ubuntu /bin/bash

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

三、将容器指定端口指定映射到宿主机的一个端口上。

例如:

docker run -p 8000:80 -it ubuntu /bin/bash

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

四、将容器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端口。

示例:

#将nginx的80端口映射到宿主机的800端口上
docker run -d -it -p 800:80 nginx 

查看映射端口配置

docker port container_ID #容器ID
#结果输出
80/tcp -> 0.0.0.0:800

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 映射容器端口到宿主主机的实现 默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器。 容器访问外部实现 容器所有到外部网络的连接,源地址都会被 NAT 成本地系统的 IP 地址。这是使用 iptables 的源地址伪装操作实现的。 查看主机的 NAT 规则。 $ sudo iptables -t nat -nL...Chain POSTROUTING (policy ACCEP

  • 本文向大家介绍Docker端口映射实现网络访问的方法,包括了Docker端口映射实现网络访问的方法的使用技巧和注意事项,需要的朋友参考一下 Docker运行容器之后却发现没IP,没端口,那要如何访问容器呢? 下面我来介绍下docker通过端口映射来实现网络访问 一、从外部访问容器应用 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。 当容器中运行一些网

  • 本文向大家介绍Docker 端口映射详细介绍,包括了Docker 端口映射详细介绍的使用技巧和注意事项,需要的朋友参考一下 Docker 端口映射:          最近抽空,把Docker 端口映射的资料整理了一下,以便后续项目应用,大家也可以参考下。   无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了端口只能本地访问外,对于容器的另外一个问题是这些 i

  • 我有一个问题,或者最好说有两个问题。两者都依赖于Docker,并且与Docker如何处理容器主机名和端口的理解有关。 假设我有两个服务在不同的docker容器中运行,并将容器中的端口80公开到端口8081(service1)和端口8082(service2): 服务1: 8081: 80服务2: 8082: 80 现在我很清楚,从主机的角度来看,我可以通过使用公开的端口(http://localh

  • 本文向大家介绍Docker学习笔记之Docker端口映射,包括了Docker学习笔记之Docker端口映射的使用技巧和注意事项,需要的朋友参考一下 最近在学习docker,今天了解了Docker端口映射,给自己留个小笔记,也分享给大家 为什么要端口映射? 在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。 端口映射的指令是什么? docker指令:doc

  • 在创建 Pod 时,可以指定容器的 hostPort 和 containerPort 来创建端口映射,这样可以通过 Pod 所在 Node 的 IP:hostPort 来访问服务。比如 apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx name: nginx p