进阶:Docker容器管理工具——Docker-Compose使用

文章目录

  • 前言
    • 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 version

在这里插入图片描述

2、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-1=2
把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/16,a机起了容器ip是172.17.6.2
b机192.168.244.8,容器网段172.17.8.1/16,b机起了容器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 线上环境操作流程:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/60814.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

惊讶,日本用“Excel”作画,中国却用“Excel”造“另类”软件

精益求精 表格是一项伟大的创造,它的出现改变了人类记录、分析和展示数据的方式。 随着科技的日益月异的更新,从最早的纸质表格到现代化的电子表格,人类对表格的改造也在不断的升级和进步。 最初的纸质表格的简单记录,无法进行复…

机器人CPP编程基础-03变量类型Variables Types

机器人CPP编程基础-02变量Variables 全文AI生成。 C #include<iostream>using namespace std;main() {int a10,b35; // 4 bytescout<<"Value of a : "<<a<<" Address of a : "<<&a <<endl;cout<<"Val…

数据结构——双向链表

双向链表实质上是在单向链表的基础上加上了一个指针指向后面地址 单向链表请参考http://t.csdn.cn/3Gxk9 物理结构 首先我们看一下两种链表的物理结构 我们可以看到&#xff1a;双向在单向基础上加入了一个指向上一个地址的指针&#xff0c;如此操作我们便可以向数组一样操作…

六、web应用程序技术——编码

文章目录 一、状态与会话二、编码方案2.1 URL编码2.2 Unicode编码2.3 HTML编码2.4 Base64编码2.5 十六进制编码 一、状态与会话 web应用程序服务器和客户端组件除了以各种方式进行数据交换和处理&#xff0c;应用程序还需要追踪每位用户通过不同的请求与应用程序交互的状态。例…

PHP codeigniter4 搭配Nginx

> 主要是为了用Nginx运行PHP环境 1. Nginx 官方文档的配置 default.conf This configuration enables URLs without “index.php” in them and using CodeIgniter’s “404 - File Not Found” for URLs ending with “.php”. server {listen 80;listen [::]:80;se…

vuejs 设计与实现 - 简单diff算法

DOM 复用与key的作用&#xff1a; DOM 复用什么时候可复用&#xff1f; key 属性就像虚拟节点的“身份证”号&#xff0c;只要两个虚拟节点的 type属性值和 key 属性值都相同&#xff0c;那么我们就认为它们是相同的&#xff0c;即可以进行 DOM 的复用。即 我们通过【移动】来…

【C++】C语言基础部分知识点总结 (指针,函数,内存,关键字,预处理等)(秋招篇)

文章目录 前言讲一下32位系统常用数据类型的字节大小&#xff08;stm32f103为例&#xff09;讲一些C/C中常见的库什么是易变变量&#xff1f;代码的转化和构建通常会经历哪几个步骤&#xff1a;&#xff08;预处理&#xff0c;编译&#xff0c;汇编&#xff0c;链接&#xff09…

matplotlib FormatStrFormatter设置坐标轴的标注为整数和小数【设置小数点的数目】

利用FormatStrFormatter 进行设置 1 设置为整数 import matplotlib.pyplot as plt from matplotlib.ticker import FormatStrFormatter# 创建一个图表 fig, ax plt.subplots()# 生成一些示例数据 x [1, 2, 3, 4, 5] y [1000, 2000, 3000, 4000, 5000]# 在 x 轴上设置刻度标…

HTML,url,unicode编码

目录标题 HTML实体编码urlcode编码unicode编码小结基础例题高级例题 HTML实体编码 实体表示&#xff1a; 以&符号开始&#xff0c;后面跟着一个预定义的实体的名称&#xff0c;或是一个#符号以及字符的十进制数字。 例&#xff1a; <p>hello</p> <!-- 等同…

LeetCode 热题 100 JavaScript--142. 环形链表 II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…

Linux(进程间通信详解)

进程间通信&#xff0c;顾名思义&#xff0c;就是进程与进程之间互通信交流&#xff0c;OS保证了各进程之间相互独立&#xff0c;但这不意味着进程与进程之间就互相隔离开&#xff0c;在不少的情况下&#xff0c;进程之间需要相互配合共同完成某项6任务&#xff0c;这就要求各进…

git教程(第一次使用)

一、gitee和github区别 二、git使用 下载地址 windows&#xff1a;https://gitforwindows.org/ mac&#xff1a;http://sourceforge.net/projects/git-osx-installer/ 1.git初次运行前的配置 &#xff08;1&#xff09;配置用户信息 git config --global user.name "…