关注分享主机优惠活动
国内外VPS云服务器

Docker网络、部署集群和打包映像问题

码头网络

了解docker清除前端Docker图像和容器。

#删除所有容器$ docker rm -f $(docker ps -aq)#删除所有图像$ docker rm -f $(docker图像-aq)测试

Docker网络、部署集群和打包映像问题-主机频道

三个网络

问题:docker处理容器网络访问吗?

Docker网络、部署集群和打包映像问题-主机频道

#测试运行一个Tomcat $ docker run -D -P --Name Tomcat 01 Tomcat #检查容器的内部网络地址$ docker exec -it容器id ip addr#你会得到一个eth0@if91的ip地址当你发现容器启动,Docker分配它!$ IP addr 1:lo:& lt;LOOPBACK,UP,LOWER _ UP & gtmtu 65536 qdisc noqueue状态未知组默认qlen 1 link/loopback 00:00:00:00:00:00:00:00:00:00:00 inet 127 . 0 . 0 . 1/8作用域主机lo valid _ lft forever preferred _ lft forever 261:eth 0 @ if91:& lt;广播、多播、UP、LOWER _ UP & gtmtu 1500 qdisc noqueue状态UP组默认link/ether 02:42:AC:12:00:02 brd ff:ff:ff:ff:ff:ff link -netnsid 0 inet 172 . 18 . 0 . 2/1 brd 172 . 18 . 255 . 255 scope全球ETH0Valid _ LFT永远首选_ LFT永远#思维?Linux可以ping容器内部!是的,容器内部能ping通外部世界吗?当然可以!$ ping 172.18.0.2 ping 172 . 18 . 0 . 2(172 . 18 . 0 . 2)56(84)个字节的数据。172 . 18 . 0 . 2中的64个字节:icmp _ seq = 1ttl = 64time = 0.069ms64

1.每当我们启动一个docker容器,docker就会给docker容器分配一个ip。只要跟着docker,就会有docker0桥接模式,使用的技术是veth-pair技术!

再次测试ip地址。

Docker网络、部署集群和打包映像问题-主机频道

2.开始另一个容器测试,找到另一对网络。

Docker网络、部署集群和打包映像问题-主机频道

#我们发现这个容器是成对带网卡的。# veth-pair是一对虚拟设备接口。它们都是成对出现的,一端连接协议,另一端互相连接。#因为这个特性,veth-pair起到了桥梁的作用,# OpenStac、Docker containers、OVS都使用了evth-pair技术3。

# Get IP 172 . 17 . 0 . 2 $ docker -Tomcat docker exc -IT Tomcat 01 IP addr 550:eth 0 @ if 551:< BROADCAST,MULTICAST,UP,LOWER _ UP & gtMTU 1500 qdisc no queue state UP group default link/ether 02:42:AC:11:00:02 brd ff:ff:ff:ff:ff:ff:ff link -netnsid 0 inet 172 . 17 . 0 . 2/16 brd 172 . 17 . 255 . 255范围全局eth 0 valid _ lft forever preferred _ lft forever # Let Tomcat 02 ping Tomcat 01 $ Docker -Tomcat Docker Exec -IT Tomcat 0064字节来自172.17.0.2: ICMP _ SEQ = 1 TTL = 64时间= 0.098 ms64字节来自172.17.0.2: ICMP _ SEQ = 2 TTL = 64时间= 0.071 ms #结论:容器和容器是可以互相ping通的网络模型图。

Docker网络、部署集群和打包映像问题-主机频道

结论:tomcat01和tomcat02共用一个路由器docker0。

当没有指定网络时,的所有容器由docker0路由,docker将为我们的容器分配一个默认的可用ip。

总结

docker使用Linux bridge,主机是Docker容器的桥docker0。

Docker网络、部署集群和打包映像问题-主机频道

Docker中所有网络接口都是虚拟的,虚拟转发效率高(内网文件传输)。

只要删除容器,对应的桥对就没了!

考虑一个场景:我们写了一个微服务,数据库url=ip:项目没有重启,数据ip变了。我们希望可以处理这个问题,并通过名称访问容器?

& ndash-Link $ Docker exec -IT Tomcat 02 Ping Tom Ca01 # Ping:Tom Ca01:名称或服务未知# Run a Tomcat 03 --Link Tomcat 02 $ Docker Run -D-P--Name Tomcat 03 --Link Tomcat 02 Tomcat 5 f 9331566980 a 92 BC 54681 CAAC 14 e 9 fc 993 f 14 ad 13D 98534026 c 0 8 c 0 a 9 AEF #

Docker网络检查具有相同的网络id段。

名称不同,但IPv4Address是同一个docker inspect tomcat03。

“链接”:

网络连接Docker网络、部署集群和打包映像问题-主机频道

Docker网络、部署集群和打包映像问题-主机频道

#测试两个不同的网络连通性然后启动两个Tomcat使用默认网络,即docker 0 $ docker run -D-P--Name Tomcat 01 Tomcat $ docker run -D--Name Tomcat 02 Tomcat #此时ping失败Docker网络、部署集群和打包映像问题-主机频道

#要将tomcat01连接到Tomcat-net-01,连接意味着将tomcat01添加到mynet网络#一个具有两个ip的容器(tomcat01)Docker网络、部署集群和打包映像问题-主机频道

# 01已连接。此时加入后,可以ping通tomcat01和Tomcat -01-net。# 02仍未连接。假设要跨网操作别人,需要用docker network connect连接!

实战:部署Redis集群Docker网络、部署集群和打包映像问题-主机频道

#创建网卡Docker网络创建redis --子网172.38.0.0/16 #通过脚本在$中为端口创建六个Redis配置(SEQ 16);\ do \ mkdir -p/my data/redis/node -$ { port }/conf touch/my data/redis/node -$ { port }/conf/redis . conf cat & lt;& ltEOF & gt& gt/my data/redis/node -$ { port }/conf/redis . confport 6379 bind 0 . 0 . 0 . 0 Cluster -已启用yes Cluster -config -文件节点. conf Cluster -node -超时5000 Cluster -announce -IP 172 . 38 . 0 . 1 $ { port } Cluster -announce -端口6379 Cluster -announce -总线-端口16379 append only yeseofdone #运行六个redis for端口,以$为单位\ docker run -p 637 $ { port }:6379 -p 1667 $ { port }:16379 --name Redis -$ { port } \ -v/my data/Redis/node -$ { port }/data:/data \ -v/my data/Redis/node -$ { port }/conf/Redis . conf:/etc/Redis/Redis . conf \ -D-net Redis -IP 172

Docker,构建redis集群完成!

Docker网络、部署集群和打包映像问题-主机频道

我们用了docker之后,所有的技术都会逐渐变得简单!

SpringBoot微服务打包Docker image 1,并构建SpringBoot项目。

2.打包走人

Mvpackage3,编写dockerfile

来自Java: 8copy *。jar/app . jar cmd[" --server . port = 8080 "]expose 8080入口点["Java "," -jar "," app.jar"] 4。建立形象

# 1.将jar和DockerFIle复制到服务器# 2。构建映像$ dockerbuild-xxxxxx: xx.5,发布并运行。

以后我们用了Docker之后,给别人送货只是一个镜像!

关于docker网络、集群部署和打包映像的文章到此结束。关于docker打包图像的更多信息,请搜索主机频道zhujipindao以前的文章。或者继续浏览下面的相关文章。希望大家支持主机频道zhujipindao。以后多来com!

未经允许不得转载:主机频道 » Docker网络、部署集群和打包映像问题

评论 抢沙发

评论前必须登录!