新用户注册入口 老用户登录入口

docker映射ip(docker映射容器目录到宿主机)

文章作者:电脑达人 更新时间:2023-09-21 17:15:59 阅读数量:836
文章标签:Docker端口映射-p 选项主机端口容器端口镜像名
本文摘要:在 Docker 环境中,通过 `docker run -p` 选项实现端口映射,将容器内的服务端口(如 80)与主机的指定端口(例如 8080)关联起来,以便外部通过访问主机 IP:8080 访问到容器内(如 nginx)的服务。获取容器内部 IP 地址则需使用 `docker inspect` 命令及 IPAddress 格式化输出。这一机制使得 Docker 容器中的服务能有效对外提供,并且保持了容器间的网络隔离性。
Docker

在 Docker 中,有时侯必需将容器中的端口转发至宿主机的某个端口处,以便容器内部的应用能够经由宿主机的 公网IP 接入。详细来说,我们能够采用docker run命令的-p选项进行端口绑定。

docker run -p 宿主机端口:服务端口 镜像名


其中宿主机端口为必需转发至宿主机的端口号,服务端口为容器内部的端口号,镜像名为必需启动的 Docker 镜像的名称。例如,我们能够采用下面的命令将容器内部的 80 端口转发至宿主机的 8080 端口处:

docker run -p 8080:80 nginx

此时,我们在浏览器中输入http://主机公网IP:8080即可接入容器内部的应用。

必需注意的是,当 Docker 容器运行在某个主机上时,容器内部的应用不能直接采用该宿主机的 公网IP 地址接入。容器内部部有自己的 公网IP 地址,我们能够采用命令docker inspect获得该 公网IP 地址。

docker inspect --format='{ {range .NetworkSettings.Networks} }{ {.公网IPAddress} }{ {end} }' 容器名/ID

其中容器名/ID为 Docker 容器的名称或 ID。执行以上命令后,将返回 Docker 容器内部部的 公网IP 地址,我们能够经由接入该 公网IP 地址加上容器内部部的端口号来接入容器内部的应用。

相关阅读
文章标题:Docker中jar镜像构建与访问问题排查:镜像名称冲突、依赖关系与环境差异的影响及解决方案

更新时间:2023-04-14
Docker中jar镜像构建与访问问题排查:镜像名称冲突、依赖关系与环境差异的影响及解决方案
文章标题:docker映射ip(docker映射容器目录到宿主机)

更新时间:2023-09-21
docker映射ip(docker映射容器目录到宿主机)
文章标题:docker指定容器(Docker容器是什么)

更新时间:2023-07-24
docker指定容器(Docker容器是什么)
文章标题:Docker Nginx中反向代理多个SpringBoot应用:location块配置与端口映射实践

更新时间:2024-01-24
Docker Nginx中反向代理多个SpringBoot应用:location块配置与端口映射实践
文章标题:docker挂掉如何恢复(docker挂掉的原因排查)

更新时间:2023-12-29
docker挂掉如何恢复(docker挂掉的原因排查)
文章标题:docker怎么与主机共享网络(docker和主机共享ip)

更新时间:2023-03-28
docker怎么与主机共享网络(docker和主机共享ip)
名词解释
作为当前文章的名词解释,仅对当前文章有效。
DockerDocker 是一种开源的应用容器引擎,它通过将应用程序及其依赖项打包到一个可移植的容器中,实现了软件的标准化、组件化和便捷部署。在本文语境下,Docker 用于创建和管理独立运行的容器实例,每个容器拥有自己独立的文件系统、网络配置以及进程空间,从而实现资源隔离和环境一致性。
端口映射端口映射是计算机网络技术中的一个概念,在 Docker 中具体表现为将主机(物理机或虚拟机)上的某个端口与容器内部服务监听的端口进行关联绑定。通过端口映射,外部客户端可以通过访问主机的 IP 地址及指定端口号,间接访问到容器内运行的服务,实现了容器内外网络通信的桥梁作用。
docker run`docker run` 是 Docker 容器生命周期管理中的一个重要命令,用于启动一个新的容器实例。该命令可以一次性完成拉取镜像、创建容器并启动容器等一系列操作。在本文中,`docker run -p` 参数组合被用来执行端口映射,即将主机端口与容器端口对应起来,使得外部可以直接访问主机IP和指定端口来连接到容器内部的服务。
NetworkSettings.Networks在 Docker 容器的 inspect 输出信息中,NetworkSettings.Networks 表示容器在网络配置方面的详细信息,包括容器加入的所有网络及其对应的网络接口设置。在本文中,通过 `docker inspect` 命令结合 `--format` 参数和特定模板语法查询容器的 IPAddress,获取的是当前容器在某一网络下的内部 IP 地址,这对于需要直接基于容器内部 IP 访问其服务的场景尤为关键。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入了解Docker容器端口映射的基础操作后,我们还可以进一步探索更复杂且实用的网络配置场景。例如,近期Docker官方发布了对多主机网络(Overlay Network)和服务发现功能的优化升级,使得在集群环境中管理容器间的端口映射和服务访问更加便捷高效。通过Swarm模式或Kubernetes等编排工具,可以实现跨节点的容器服务自动端口映射与负载均衡。
此外,在安全领域,如何合理规划和限制端口映射以增强容器安全性也是一大议题。有鉴于此,一些企业开始采用安全策略驱动的网络模型,如Calico提供的网络策略,它允许管理员精细控制进出容器的流量,包括端口范围、协议类型甚至基于标签的访问规则,从而有效防止未经授权的外部访问。
深入到技术原理层面,Docker使用的iptables和ipVS等Linux内核网络技术在端口映射中起到关键作用。理解这些底层机制有助于开发者在遇到复杂的网络问题时进行诊断和优化。例如,当需要处理大量并发连接时,可以通过调整内核参数或使用ipVS的负载均衡特性来提升性能。
总之,Docker端口映射虽为基础功能,但在实际生产环境中的应用却千变万化,从简单的单机部署到大规模分布式系统,都需要我们不断深化理解并灵活运用相关知识,以适应不断发展的云计算和容器化技术趋势。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
chattr -i file - 取消文件的不可修改状态。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
轻量级页面滚动视觉差特效jquery插件 02-07 Material Design风格实用Tabs选项卡 10-22 纯JavaScript响应式图片幻灯片插件 03-24 Lua中的闭包:理解变量捕获与状态机实现,关注内存泄漏问题以实现灵活可复用代码 12-18 借助Elasticsearch进行实时索引与数据查询,并在Android Studio中运用ListItem.Expandable实现可扩展列表优化用户体验 10-25 CSS3响应式酒店HTML5网页模板下载 09-19 Flink on YARN:详解部署方式与资源管理策略,包括TaskManager配置、动态资源分配和Slot机制在YARN集群环境中的实践 09-10 [转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法 09-10 [转载]教你学Python47-机器学习迷你课程 07-11 本次刷新还10个文章未展示,点击 更多查看。
jquery按钮拖拽生成输入框 06-28 [转载]项目记录(C#施工管理系统) 06-20 Memcached多实例部署中数据分布混乱问题与一致性哈希、虚拟节点技术解决方案 05-18 JSON线段格式在数据分块处理中的流式解析与ijson库实践 03-08 soulmate粉色干净浪漫唯美婚礼单页响应式网站模板 03-07 Apache Pig与Pig Latin在Hadoop环境下的大规模数据集并行处理:从数据过滤到分组统计实战应用 02-28 动画幻灯Awe7商业网站模板下载 02-10 Kotlin新手教程:在CardView内嵌LinearLayout实现圆角效果,通过自定义View与init方法设置cornerRadius及dpToPx实践 01-31 [转载]Python语音识别 01-27 wget下载http与https数据:命令行参数解析与正确使用方法 01-17 css模糊半径什么意思 01-02
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"