Docker端口映射实现网络访问的方法

发布时间 - 2026-01-11 02:34:25    点击率:

Docker运行容器之后却发现没IP,没端口,那要如何访问容器呢?

下面我来介绍下docker通过端口映射来实现网络访问

一、从外部访问容器应用

在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数指定端口映射。
先来说说p和P吧

  1. -p 可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器
  2. -P 它会随机映射一个端口至容器内部开放的网络端口(范围不详,似乎都上万)

先申明一下,我这边

client ip address 为192.168.0.225

registry ip address 为192.168.0.216:5000

docker run -d -it --name nginx -P 192.168.0.216:5000/nginx
docker ps -a      #查看容器是否在运行 
docker logs nginx    #查看nginx容器的log

端口映射支持的格式有:

ip:hostport:containerport  #指定ip、指定主机port、指定容器port
ip::containerport      #指定ip、未指定主机port、指定容器port
hostport:container     #未指定ip port、指定主机port、指定容器port   
 

二、映射所有接口ip

下列命令查看到0.0.0.0监听5000端口

docker run -d -it -p 5000:5000 --name registry 192.168.0.216:5000/registry
docker ps -a | grep 5000   

多次使用-p标记可以绑定多个端口

docker run -d -it -p 800:80 -p 8088:8080 --name tomcat 192.168.0.216:5000/tomcat
docker ps -a | egrep "(80|8080)"

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

将容器的80 port映射到192.168.0.225:800

docker run -d -it -p 192.168.0.225:800:80 --name web_server 192.168.0.216:5000/nginx
curl 192.168.0.225:800   #验证是否可以访问默认首页

四、映射到指定地址的udp端口

这里且不说能不能访问,只是一种映射方式。大家别见怪

docker run -d -it -p 192.168.0.225:300:3000/udp --name unknown 192.168.0.216:5000/nginx
netstat -anpu |grep udp
udp  0  0  192.168.0.225:300  0.0.0.0:*   24588/docker-proxy

五、查看映射端口配置

通过docker port container_ID 可以查看到容器映射了哪些端口及协议

[root@docker ~]#docker port tomcat
8080/tcp -> 192.168.0.225:32769
[root@docker ~]#docker port unknown
3000/udp -> 192.168.0.225:300

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


# Docker端口映射网络访问  # Docker端口映射  # 外网访问  # docker build镜像时  # 无法访问网络问题  # 在Docker中如何配置网络并访问互联网  # Docker网段和内网网段ip冲突导致无法访问网络的两种解决方法  # docker容器间互相访问(docker bridge网络)  # docker 容器自定义 hosts 网络访问操作  # Docker容器访问宿主机网络的方法  # 如何解决docker容器访问不了外部网络问题  # 端口映射  # 绑定  # 多个  # 我来  # 可以通过  # 要让  # 它会  # 来实现  # 首页  # 先来  # 大家多多  # 可以查看  # 我这边  # 后却  # 上只  # 和服务  # 容器内  # 来访问  # bash  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何破解联通资金短缺导致的基站建设难题?  浅谈Javascript中的Label语句  javascript日期怎么处理_如何格式化输出  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何在橙子建站中快速调整背景颜色?  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  如何在万网自助建站中设置域名及备案?  如何在景安云服务器上绑定域名并配置虚拟主机?  如何在Windows环境下新建FTP站点并设置权限?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何在新浪SAE免费搭建个人博客?  详解jQuery中的事件  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Android自定义控件实现温度旋转按钮效果  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  php json中文编码为null的解决办法  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何在阿里云通过域名搭建网站?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  🚀拖拽式CMS建站能否实现高效与个性化并存?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  网站制作企业,网站的banner和导航栏是指什么?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  php打包exe后无法访问网络共享_共享权限设置方法【教程】  如何挑选优质建站一级代理提升网站排名?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何解决hover在ie6中的兼容性问题  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何用PHP快速搭建CMS系统?  如何快速登录WAP自助建站平台?  php 三元运算符实例详细介绍  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Thinkphp 中 distinct 的用法解析  Laravel如何实现本地化和多语言支持?(i18n教程)  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel Fortify是什么,和Jetstream有什么关系  制作企业网站建设方案,怎样建设一个公司网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何在阿里云香港服务器快速搭建网站?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集