Day09 docker-跨主机通信、持久化存储
容器跨主机通信如何实现?
可以理解为,我们的两个容器都是两个小区之中的住户,那我们要实现通信,如何实现呢?
1、住户1写信让外卖小哥通过小区1 走入小区2
2、然后通过具体的住户2的门牌号进行拜访
在这个过程中,外卖小哥相当于我们的信件作用,也就是数据包,数据包通过小区之间的大门进入对应小区,也就是物理网卡,通过物理网卡之后,外卖小哥通过小区地图对比实际住户地址,确定住户2所在位置,这个动作就是nat地址转换,而达到住户2的楼下单元楼就是docker0-> veth0 上楼送信就是veth0->veth1
那么如何让我们的外卖小哥获取到对应的地址信息,就是我们给他一张地图nat 这样他就能找到对应的地址了
iptables -t nat -I PREROUTING -s 10.0.130.0/24 -d 10.0.131.0/24 -j DNAT --to 10.0.130.1
iptables -t nat -I PREROUTING -s 10.0.131.0/24 -d 10.0.130.0/24 -j DNAT --to 10.0.131.1
# prerouting 就是流入数据包要进行nat转换 -s 源地址
-d 目标地址 -j DNAT 目的地nat转换 --to 从哪里出去的
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
持久化存储于数据卷的共享
挂载容器-没啥人用
bind mount 和 tmpfs
绑定数据卷 基本上不用的
docker run -itd --name nginx5-test1 --mount type=bind src=/app/wwwroot,dst=/usr/share/nginx/html nging:1.15
docker run -d -it --name nginx4-test -v /app/wwwroot:/usr/share/nginx/html nginx:1.15
记住下面的就OK了,可以实验去试试,docker inspect nginx4-test 你会发现它有Bind
临时数据卷更不推荐使用了
因为容器删除,临时数据卷也会删除,数据就不会保存下来的,临时卷不存在持久化的数据能力
当你数据不想存于主机,又不想存于容器时,可以引用临时存储卷
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.