docker怎么端口映射

1、默认固定的端口

bash 复制代码
# Web服务器:WebApache或Nginx通常使用80端口
HTTP:80
HTTPS:443

# 数据库服务器
MySQL:3306
PostgreSQL:5432
MongoDB:27017
Redis:6379

# 邮件服务器
SMTP:25
POP3:110
IMAP:143

# 其他服务
SSH:22
FTP:21
DNS(域名解析):53

代理服务器
Squid:3128
版本控制系统
Git:9418 (SSH)
容器相关
Docker 默认端口:2375(非安全),2376(安全)
其他网络服务
Telnet:23
NFS:2049
RPCbind:111

2、docker 端口映射

Docker的端口映射是通过在docker run命令中使用-p或-P参数来实现的。这允许你将容器内部的端口映射到宿主机上的端口,从而使得外部网络可以访问容器内的服务。

单个端口映射

如果你只想映射容器内的一个端口到宿主机上的一个端口,可以使用-p参数,具体命令如下:

bash 复制代码
docker run -p [宿主机端口]:[容器内部端口] image_name

例如,如果你想将容器内的80端口映射到宿主机的8080端口,可以执行以下命令:

bash 复制代码
docker run -p 8080:80 image_name

这样,当外部网络访问宿主机的8080端口时,请求会被转发到容器内的80端口

多个端口映射

如果容器中有多个服务需要暴露,你可以使用多个-p参数进行端口映射。例如:

bash 复制代码
docker run -d -p [宿主机端口1]:[容器内部端口1] -p [宿主机端口2]:[容器内部端口2] image_name

将容器内部的8080端口映射到主机的8080端口,同时将容器内部的3306端口映射到主机的3306端口,命令如下:

bash 复制代码
docker run -d -p 8080:8080 -p 3306:3306 myapp
随机端口映射

如果不指定宿主机上的端口,Docker会自动为容器选择一个未被占用的端口号进行映射。这可以通过使用-P(大写的P)参数来实现:

bash 复制代码
docker run -d -P myapp

这样,Docker会在宿主机上为容器分配一个随机端口,并将容器内部的应用程序映射到这个随机端口上。你可以使用docker ps命令来查看映射的端口号。

注意事项

在进行端口映射时,确保宿主机上的端口没有被其他应用程序占用。

如果容器内部没有指定端口,Docker会使用容器内部应用程序所监听的默认端口号进行映射。

端口映射后,你可以通过访问宿主机的IP地址和映射的端口号来访问容器内的服务。

总之,Docker的端口映射功能提供了灵活的方式来暴露容器内的服务到外部网络。通过合理的配置,你可以实现容器与外部网络之间的顺畅通信。

相关推荐
荣--15 小时前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森15 小时前
动手实战学 Docker — 从零到集群编排完全指南
运维
宋均浩16 小时前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
Avan_菜菜1 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
程序员老赵1 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1112 天前
LM Studio Docker 部署——本地大模型一键启动
docker
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽3 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220704 天前
如何搭建本地yum源(上)
运维