1.7 Docker-网络管理

Posted network-ren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.7 Docker-网络管理相关的知识,希望对你有一定的参考价值。

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”网络。

[[email protected] ~]# 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"
示例:
[[email protected] ~]# docker network create -d bridge my-network

3、删除自定义容器网络

语法:docker network rm 网络名
示例:
[[email protected] ~]# docker network rm my-network

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

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

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

语法:docker network inspect 网络名
示例:
[[email protected] ~]# docker network inspect bridge

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

[[email protected] ~]# docker run -d -p 80:80 --name "WEB-nginx" --network my-network nginx:latest





以上是关于1.7 Docker-网络管理的主要内容,如果未能解决你的问题,请参考以下文章

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

Docker

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

云原生之企业级容器技术 Docker实战一Docker 介绍

Docker Dockerfile详解

markdown docker-compose片段