1.docker 网络
1.创建网络netns:
运行网络命令:
如果回环口需要up的话需要2端都要连接起来
link test1 网络 查看本地回环口情况注意:以上操作都是分配了网络端口没有匹配IP,以下操作是给2容器分配IP地址
目前test1和test2都是没有IP地址的
启动2容器端口:
test1和test2已经UP了,同时IP已经分配
,2容器网络已通:
2.容器内部网络(容器是独立的,所以网络也需是独立的)
容器内的网络能访问外部网络原理:
3.如何解决容器之间访问由于IP不固定导致连接不上
注意:test1 能ping test2 但是test1是不能ping test1的只能通过ip,link是有方向的
新建容器指定网络
再次看看my-bridge网络
如果2个容器是连接在自己创建的网络上,是不用link的就能通过容器的名字来访问的:
test2是连接到2个网络中的:
4.端口映射
创建nginx容器:
端口映射
5.docker中host和none网络
test1 是独立的,只有本地能访问
test1 是独立的,只有本地能访问连接host网络
进入test1容器内部:
注意:test1和主机是共享一套网络的。会存在端口冲突,eg只能启用一个80端口
6.多复杂网络应用部署
容器应用源码:
应用程序通过环境变量就能访问到计算机的端口
做了端口映射外面才能访问:
同一个linux机器部署应用网络关系图:
多主机应用部署访问网络
7.不同linux主机通讯和应用部署(VXLAN)
Docker Overlay网络和etcd实现多机容器通信
redis数据服务:192.168.205.10----node1
flask应用服务:192.168.205.11----node2
192.168.205.11中的容器需要访问192.168.205.10 中的数据服务容器
以下是在2个主机搭建分布式存储
主机1:
主机2:
主机1执行:
主机2执行:
主机node1 重启docker服务,主要是让docker知道使用分布式存储
手动启动docker:
验证docker是否启动:
同样在node2上也执行node1的操作
主机node1的docker会发现一个node2主机的docker
创建Overlay 网络
在没创建之前查看2主机的网络:
创建Overlay网络
node1主机执行:
node2主机会自动加入node1创建的网络
原理如下:
通过docker的Overlay互通网络,案例如下:
node1主机创建容器:
node2主机创建容器:
查看dome网络:
注意:dome中已经有2和Containers,并且网络是互通的
网友评论