温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

docker中网络模式的示例分析

发布时间:2021-11-18 16:19:59 来源:亿速云 阅读:139 作者:小新 栏目:云计算

这篇文章主要介绍docker中网络模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

当你安装完Docker时,它会自动创建三个网络。

docker network ls

结果应如下:

NETWORK ID          NAME                DRIVER              SCOPE
594430d2d4bb      bridge                bridge                 local
d855b34c5d51       host                    host                    local
b1ecee29ed5e        none                   null                     local

Docker内置这三个网络,运行容器时,你可以使用该来指定容器应连接到哪些网络。

我们在使用docker run创建Docker容器时,可以用--network标志 选项指定容器的网络模式,Docker有以下4种网络模式:

  • host模式:使用 --net=host 指定。

  • none模式:使用 --net=none 指定。

  • bridge模式:使用 --net=bridge 指定,默认设置。

  • container模式:使用 --net=container:NAME_or_ID 指定。

host

Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。

host模式类似于Vmware的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。一个Docker容器一般会分配一个独立的Network Namespace。但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。

如下图所示:容器与主机在相同的网络命名空间下面,使用相同的网络协议栈,容器可以直接使用主机的所有网络接口 docker中网络模式的示例分析

案例验证

查看主机链路接口

ip a

我们右侧云环境主机的IP为{host0.ip}/24上用host模式启动nginx容器,监听它的tcp80端口。

使用--net host参数来指定网络模型使用host模式

docker run --name=nginx --net=host -p 80:80 -d nginx

查看容器链路接口,与主机一致

docker exec -it nginx cat /etc/hosts

这时外界要访问容器中的应用,则直接使用{host0.ip}:80即可,不用任何NAT转换,就像直接跑在宿主机中一样。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

curl {host0.ip}

以上是“docker中网络模式的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI