码迷,mamicode.com
首页 > 其他好文 > 详细

1.7 Docker-网络管理

时间:2018-08-22 20:42:52      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:交换机   1.7   iptables   手动   详细信息   creat   docke   端口   应用   

1.7 网络管理

容器网卡的三种工作模式:bridge、host、none。

bridge(网桥模式)

物理机就像一个虚拟交换机,做容器与容器之间,容器与外网通信的桥梁。当运行容器时,Docker会在物理机上创建Docker0和vethx虚拟网卡,Docker0是一个三层接口拥有容器网段的IP地址,用于物理机与容器通信,而vethx是一个二层虚拟接口,用于连接容器网卡。默认情况下容器会使用MASQUERADE(动态SNAT)的方式将容器内部网络转换成物理机网卡网段去访问到外网。
因为是个虚拟交换机,当然如果你想要内网其他主机访问到容器内部的话,则可以手动增加一条到容器网段的路由即可。
如果你想要发布一个WEB服务或其他服务,你只需要在运行容器时使用“-p <端口:端口>”或“-P”增加端口映射,则Docker会自动使用物理机的IPtables防火墙做DNAT地址转换,当你访问物理机的对应IP+端口时,实际访问的是容器中的应用服务。
技术分享图片

host(主机模式)

容器完全复制物理机网络与外界通信。容器与容器之间无法访问。
技术分享图片

none(无网络模式)

无网络模式,容器无法访问其他容器及外部网络,只可以自己访问自己。
技术分享图片

1、查看容器网络

默认情况下容器使用“bridge”网络。

[root@localhost ~]# docker network ls
网络ID              网络名               网络设备类型          作用范围                   
NETWORK ID          NAME                DRIVER              SCOPE
08934fc06219        bridge              bridge              local
7288591dd537        host                host                local
0e74f42e99d3        none                null                local

2、创建自定义容器网络

可以创建一个自定义的“bridge”网络,使容器与容器之间网络隔离,互不影响。默认情况下“host”网络只允许有一个,所以一般情况下我们都是创建的自定义网络都是“bridge”。

语法:docker network create [选项] 网络名
选项:
   -d <drive_type>   指定网络设备类型,默认是"bridge"
示例:
[root@localhost ~]# docker network create -d bridge my-network

3、删除自定义容器网络

语法:docker network rm 网络名
示例:
[root@localhost ~]# docker network rm my-network

4、删除所有未使用的容器网络

语法:docker network prune [选项]
选项:
   -f   强制删除
示例:
[root@localhost ~]# docker network prune

5、查看一个容器网络设备的详细信息

语法:docker network inspect 网络名
示例:
[root@localhost ~]# docker network inspect bridge

6、容器运行时手动指定容器网络

[root@localhost ~]# docker run -d -p 80:80 --name "WEB-NGINX" --network my-network nginx:latest

1.7 Docker-网络管理

标签:交换机   1.7   iptables   手动   详细信息   creat   docke   端口   应用   

原文地址:https://www.cnblogs.com/network-ren/p/9519869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!