Docker端口映射

目录

前言

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

那么我们如何从外部访问访问docker容器呢?这就要使用端口映射了,在Docker中,可以通过端口映射将容器内的端口映射到主机上,以实现容器与外部网络的通信。

端口映射

随机映射:-P

当我们使用-P(大写的)参数启动容器,就可以让Docker随机映射一个端口到容器内部开放的端口

powershell 复制代码
docker run -P  image_name

要查看Docker映射随机端口的范围,可以使用以下命令:

powershell 复制代码
sudo cat /proc/sys/net/ipv4/ip_local_port_range

输出结果将显示系统中允许分配的本地端口范围。例如,您可能会看到以下输出:

powershell 复制代码
32768   60999

这表示Docker将分配主机上大于等于32768且小于等于60999的随机端口。

随机分配端口之后,我们可以使用docker ps 或者docker port来查看容器的端口映射,docker port会返回容器的端口映射关系,docker ps会返回运行中的容器信息

powershell 复制代码
#docker port portainer
8000/tcp -> 0.0.0.0:8000
8000/tcp -> [::]:8000

8000/tcp -> 0.0.0.0:8000:表示容器内部的8000端口被映射到主机上的8000端口,可以通过主机的IP地址和端口8000来访问容器内的服务。

8000/tcp -> :::8000:表示容器内部的8000端口也被映射到主机上的8000端口,同时支持IPv6地址。

8000/tcp表示的是容器内的8000端口,0.0.0.0:8000表示的是主机的8000端口

指定端口映射:-p

-p(小写的)参数则可以指定要映射的端口,在一个指定端口上只可以绑定一个容器。支持的格式有IP:HostPort:ContainerPort | IP::ContainerPort |HostPort:ContainerPort。

映射到指定端口

HostPort:ContainerPort:使用HostPort:ContainerPort格式,可以指定本地端口映射到容器的哪个端口

powershell 复制代码
 docker run -d -p 8000:80 --name nginx nginx

如上所示,就指定了宿主机的8000映射到容器内部的80端口

我们还可以多次使用-p标记可以绑定多个端口,如下所示

powershell 复制代码
 docker run -d -p 8000:80 -p 5000:50  --name nginx nginx

映射到指定地址的指定端口

使用IP:HostPort:ContainerPort格式,可以指定映射的地址,比如localhost地址127.0.0.1:

powershell 复制代码
docker run -d -p 127.0.0.1:8000:80 nginx

映射到指定地址,宿主机端口随机分配

使用 IP::ContainerPort格式,可以指定我们映射的地址,并且随机分配端口

powershell 复制代码
docker run -d -p 127.0.0.1::80 nginx

注意:参数里是两个:

相关推荐
进击的荆棘1 小时前
Linux系统——线程同步与互斥之线程池和安全
linux·运维·服务器·安全·单例模式·线程
瑞雪兆丰年兮2 小时前
JavaWeb-day11-SpringBootWeb案例(文件上传)
java·运维·服务器·javaweb·oss
xbzb2 小时前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
那明眸似水3 小时前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
腾飞开源3 小时前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
小南家的青蛙4 小时前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
知已难寻14 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
xbzb19 小时前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
阿里云云原生20 小时前
生产更可信,订阅更耐用丨Higress 社区进展报告
云原生
阿里云云原生21 小时前
如何用 STAROps Elasticsearch 智能助手看穿“搜索变慢”
云原生