东莞东城做网站公司,潍坊网站建设服务商,少儿编程老师,网站备案快速备案文章目录 前言Compose大杀器编排服务 1、docker-compose安装curl方式安装增加可执行权限查看版本 2、Docker-compose.yaml命令3、 docker-compose实战4、Docker网络路由docker的跨主机网络路由**问题由来**:方案两台机分别配置路由表ip_forward配置 总结 前言
容器的管理工具会带来更大的便利。docker层面希望每一个服务都是一个容器通过管理这些容器的发布实现各种服务的编排。
Compose大杀器编排服务 1、docker-compose安装
curl方式安装
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-uname -s-uname -m /usr/local/bin/docker-compose 增加可执行权限
sudo chmod x /usr/local/bin/docker-compose查看版本
docker-compose version2、Docker-compose.yaml命令
docker-compose的命令与docker命令极为相似用法上没有区别下面列出它特有的几种命令 up 创建并启动容器docker-compose up -d --scale 服务名数字 ---------- d表示后台运行scale是表示对应的服务同时启动几个容器 down 停止并删除容器 docker-compose down ---------- 会停掉容器并删除掉容器。如果不希望删除容器请使用stop 3、 docker-compose实战 编写一个项目整体服务一个网关nginx springboot的集群如上图 其中nginx服务将配置文件挂载在主机当前项目目录的路径下nginx/conf.d/ 命令docker-compose up -d docker-compose up -d --scale member-12 把member-1服务启动两个容器
4、Docker网络路由
docker的跨主机网络路由
假设我们现在有两台docker主机各启动了自己的容器在运行
问题由来:
1、在网桥模式下同一个主机下的容器使用同一个网桥docker0它们组成一个局域网如上图主机1的172.17.6.0网段下的三个容器2、同一个主机下的容器相互之间网络是通的3、但不同主机下是不同的局域网它们之间网络不能互通。如172.17.6.2的容器想要访问172.17.8.2的容器
方案
a机192.168.244.7容器网段172.17.6.1/16a机起了容器ip是172.17.6.2 b机192.168.244.8容器网段172.17.8.1/16b机起了容器ip是172.17.8.2
两台机分别配置路由表
a机route add -net 172.17.8.0 netmask 255.255.255.0 gw 192.168.244.8 b机route add -net 172.17.6.0 netmask 255.255.255.0 gw 192.168.244.7 添加好后路由表类似下图 然后a机ping b机容器发现仍是ping不通卡住ping不通就是数据包被drop掉了.
ip_forward配置
我们在b机上使用以下命令查看网络包转发情况发现有掉包 iptables -t filter -nvL FORWARD 我们需要b机上配置寻找172.17段ip的网络包不要丢掉要转发 a机 iptables -I DOCKER --dst 172.17.0.0/16 -j ACCEPT b机 iptables -I DOCKER --dst 172.17.0.0/16 -j ACCEPT 网络ok整个网络包的流程完整如下
总结
Docker 线上环境操作流程