docker端口映射与容器的互访

[复制链接]

975

主题

975

帖子

629

积分

高级会员

Rank: 4

积分
629
分享到:
发表于 2022-6-15 14:50:18 | 显示全部楼层 |阅读模式
一.网络模式

--net=bridge 默认

2.--net=host

docker run -it busybox 默认运行生成独立网络命令空间

docker run -it --net=host busybox --net=host 与宿主机一同使用网络命令空间,其他隔离
在容器内使用端口相当于占用宿主机的端口;

3.--net=none

Docker run -it --net=none 网络独立,但每配置任何地址

4.--net=container:namedocker exec -it bs sh 运行一般容器netstat -nltp

docker run -itd --name nginx05 --net=container:bs nginx

netstat -nltpProto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program name

tcp00 0.0.0.0:800.0.0.0:*LISTEN-
具备同样的网络信息,容器除外,其他都是隔离;

5.自定义网络
与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信

docker network create bs-test 创建网络bs-testdocker run -it --name bs4 --net bs-test busybox

docker run -it --name bs3 --net bs-test busybox
然后互ping可以通信;主机名也可以通信; link通信
二.容器网络访问原理

Docker 宿主机与容器之间通信用的iptables的snat和dnat
从容器数据到主机的数据通过docker0网桥配置iptable snat到主机网卡。
从主机网卡到容器数据是通过docker0网桥配置iptables Dnat到容器网卡。

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表