Docker端口映射实现
默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器。
容器访问外部实现
容器所有到外部网络的连接,源地址都会被NAT成本地系统的IP地址。这是使用 iptables
的源地址伪装操作实现的。
查看主机的 NAT 规则。
$ sudo iptables -t nat -nL
...
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 !172.17.0.0/16
...
其中,上述规则将所有源地址在 172.17.0.0/16
网段,目标地址为其他网段(外部网络)的流量动态伪装为从系统网卡发出。MASQUERADE 跟传统 SNAT 的好处是它能动态从网卡获取地址。
外部访问容器实现
容器允许外部访问,可以在 docker run
时候通过 -p
或 -P
参数来启用。
不管用那种办法,其实也是在本地的 iptable
的 nat 表中添加相应的规则。
使用 -P
时:
$ iptables -t nat -nL
...
Chain DOCKER (2 references)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:49153 to:172.17.0.2:80
使用 -p 80:80
时:
$ iptables -t nat -nL
Chain DOCKER (2 references)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:80
注意:
- 这里的规则映射了 0.0.0.0,意味着将接受主机来自所有接口的流量。用户可以通过
-p IP:host_port:container_port
或-p IP::port
来指定允许访问容器的主机上的 IP、接口等,以制定更严格的规则。 - 如果希望永久绑定到某个固定的 IP 地址,可以在 Docker 配置文件
/etc/default/docker
中指定DOCKER_OPTS="--ip=IP_ADDRESS"
,之后重启 Docker 服务即可生效。
转载于:https://www.cnblogs.com/navysummer/p/8455113.html
Docker端口映射实现相关推荐
- docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint quirky_allen
docker端口映射或启动容器时报错 Error response from daemon: driver failed programming external connectivity on e ...
- docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint
docker端口映射或启动容器时报错 Error response from daemon: driver failed programming external connectivity on en ...
- docker端口映射失效解决方法
docker端口映射失效解决方法 参考文章: (1)docker端口映射失效解决方法 (2)https://www.cnblogs.com/erfsfj-dbc/p/11815972.html 备忘一 ...
- docker端口映射或启动容器时报错Error response from daemon: Container is not running
docker端口映射或启动容器时: docker exec -it 7c5a2350c4cb /bin/bash 出现了错误: Error response from daemon: Containe ...
- Docker端口映射无法访问的问题排查
概述 前些天,老大让升级Docker版本,后面折腾了一番,成功升级到最新版本Docker,Docker容器啥的都跑起来了,以为一切顺利了,结果第二天就发现容器映射到宿主机的端口无法访问.在宿主机用 c ...
- docker端口映射,批量删除容器
docker端口映射 http://blog.csdn.net/yjk13703623757/article/details/69212521 批量删除容器 http://blog.csdn.net/ ...
- Docker 入门系列(5)- Docker 端口映射(映射所有IP地址、映射到指定地址和指定端口、映射指定地址任意端口、查看映射端口配置)
端口映射 映射容器内应用的服务端口到本地宿主主机 1. 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要 ...
- docker 端口映射 udp_Docker领路,走进压力测试的现代化 | 51上头条
摘要:Docker技术为软件开发.测试提供了非常便捷的功能,使用现成的镜像让我们的工作事半功倍.本文针对在项目中进行压力测试使用Docker进行说明,重点记录从手工搭建环境,到使用Docker提高测试 ...
- docker 端口映射 及外部无法访问问题:开启IP转发从而解决
docker容器内提供服务并监听8888端口,要使外部能够访问,需要做端口映射. docker run -it --rm -p 8888:8888 server:v1 此时出现问题,在虚机A上部署后, ...
- [视频教程] docker端口映射与目录共享运行PHP
当我们在容器中安装完环境以后,需要在宿主机的端口上访问到容器中的端口,这时候就需要做端口映射.在开发代码的时候,需要频繁的修改代码,因此要把宿主机上的代码目录共享到容器中,这样容器里面就能访问的到代码 ...
最新文章
- ES和JS的区别,以及JavaScript的基本组成
- Oracle Database 12c(12.1) Beta已经开始内部测试
- 通过用 .NET 生成自定义窗体设计器来定制应用程序
- JBoss Portal上的“ Hello World” portlet
- WORD 表格后面的空白页删不掉?
- GDALSetProjection使用的一个注意事项
- 4 合并grid列_在 Power BI Desktop 中合并数据
- 在其他的电脑上配置绿色Jre+tomcat运行环境
- Markdown编辑器初步使用
- linux下安卓刷机,linux下安卓刷机脚本
- ~是什么意思 在C语言中,~0代表什么
- 实用性室内地图导航软件
- 【教学类-20-02】20221203《世界杯16强国旗-定量版》(大班)
- 一个函数叫random.sample
- 7-4 韩信点兵 (10 分)
- 机器学习笔记 - 时间序列的季节性
- 微前端框架 之 qiankun
- 类似 Teambition 的9大最佳项目管理软件
- 何帅:“在线”思考,王坚的云计算心理学
- win10下VMware15安装centos7详细步骤及遇到的问题