docker网络基础

Docker网络讲解
docker网络基础–host本机网络配置。


内容为 <<每天5分钟 玩转dokcer容器技术>> 书中提到的,有需要的可以去看看。
第五章讲的为本问内容
第八章讲的是 跨主机网络通讯。


Docker安装时,会自动在host上 创建三个网络。
docker network ls
在这里插入图片描述

1.none网络
顾名思义,就是什么也没有,创建时,通过 --network=none创建,只能none网络
没有网络意味着封闭,适用一些安全性较高且不需要网络的应用。


2.host网络
run时创建,通过 --network=host 创建.
在容器中可以看到host(主机)的所有网卡,并且连host name也是host的

优点:
直接使用docker host 最大的优势 就是性能,是如果容器对网络传输效率有较高要求, 则可以选择host
缺点:
牺牲一些灵活性,比如要考虑端口冲突的问题,docker host 上使用的端口就不能在用了。


3.bridge网络
安装docker的时候,会创建一个docker0的Linux bridge,如果不指定–network,创建的容器会默认挂在到docker0上面

yum install bridge-utils
brctl show
在这里插入图片描述
docker run -d httpd 如果没有此镜像,会在网络上下载并运行
我们再次 brctl show ,发现interfaces有东西了,那个就是新创建的容器虚拟网卡
在这里插入图片描述

现在我们进入到容器中

在这里插入图片描述

安装IP命令工具
yum install net-tools -y
查看IP
ifconfig
在这里插入图片描述

在这里插入图片描述

查看网桥配置信息
docker network inspect bridge

在这里插入图片描述

查看Config里面的信息,Subnet,就是我们的网络配置docker0


4.user-defined 网络

除了docker提供的 以上三种网络,用户还可以设置自己的网络。

Docker也为用户提供了三种网络驱动方式,bridge / overlay / macvlan

后两种 ,主要用于跨主机访问,这里就先不讲解了(还没有看,o(∩_∩)o )。

创建自己的网段
docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net

启动镜像生成,自动分配ip
docker run -it --network=my_net 镜像
指定ip
docker run -it --network=my_net --ip 172.22.16.8 镜像

不同网段之间,是不能互通的。
如果非要相互访问,可以给容器增加网卡
dcoker network connect my_net 容器ID


5.容器间通信
容器间通信有三种方式
IP 上一章节有,user-defined最后。
Docker DNS Server
Joined

5.1Docker DNS Server

虽然可以通过IP进行通信,但是很麻烦。
因为 部署之前,很难确定IP,其次 要指定访问的IP 也会很繁琐。

docker daemon 内嵌了Docker DNS,使用容器名的方法进行通信。
启动的时候 指定–name

Docker DNS 有限制,只能使用user-define,docker默认的则无法使用。

ping -c 3 容器名字
这个前提,好像还是要在同一网段,不然还是无法访问的,只是省去了IP的繁琐吧?

5.2joined

Joined 容器 是另一种实现容器间通信的方式。

创建一个名为web1的容器
dcoker run -d -it --name=web1 httpd

然后再创建一个容器,通过 --network=container:web1 指定joined容器为web1
dcoker run -d -it --network=container:web1 容器id bash

查看一下新启动的容器IP, 网卡的MAC和IP 与web1的完全一致!
他们共享了相同的网络栈

Joined非常适合一下场景:
不同容器中的程序,希望通过loopback 高效的快速通信,比如web server /app server等
希望监控其他容器间的网络流量,比如运行在独立容器中的网络监控程序。


6.容器与外部世界连接

容器访问外界,通过NAT,这点不需要我们做什么。
外界访问容器,通过端口映射,run的这时候 指定 -p 即可。

猜你喜欢

转载自blog.csdn.net/sunt2018/article/details/86687142