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

news2025/7/12 12:50:55

文章目录

  • 前言
    • 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.coloradmin.cn/o/843300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS NEXT,生命之树初长成

在不同的神话体系中,都有着关于生命之树的记载。 比如在北欧神话中,一株巨大的树木联结着九大世界,其被称为“尤克特拉希尔”Yggdrasill。在中国的《山海经》中,也有着“建木”的传说,它“有九欘,下有九枸&…

Squeeze-and-Excitation Networks阅读笔记一

文章目录 Abstract1 INTRODUCTION Abstract 卷积算子(convolution operator)是卷积神经网络(cnn)的核心组成部分,它使网络能够通过融合每层局部接受域内的空间和通道信息来构建信息特征。广泛的先前研究已经调查了这种…

24考研数据结构-图的存储结构邻接矩阵

目录 6.3 储存结构(邻接表表示法)1. 储存方式2. 结构3. 图的邻接表存储表示(算法)4. 结论5. 邻接矩阵和邻接表的对比邻接矩阵优点:缺点: 邻接表优点:缺点: 邻接矩阵与邻接表的关系 6…

iphone短信备份软件哪个比较好用?牛学长苹果数据管理工具是首选!

iphone短信备份软件哪个比较好用?说到iPhone备份,想必大家会下意识的想到iCloud和iTunes,这是苹果官方提供的两大特色服务,可以帮助我们备份苹果手机中的短信等多项数据,但由于它们都各有限制,只能同步整机…

Tomcat服务器远程连接

目录 IDEA配置远程Tomcat服务器 防火墙设置 windows Linux IDEA配置远程Tomcat服务器 1、选择 Edit configulations,添加远程Tomcat服务器; 2、添加远程Tomcat服务器,选择Remote; 3、修改远程连接设置,添加远程主…

案例:Docker 镜像的创建及使用(commit与dockerfile方式)

文章目录 1、commit方式创建镜像1.1、前期准备1.2、制成镜像1.3、启动镜像1.3.1、启动镜像启动nginx1.3.2、一个命令直接全部启动1.3.3、两种方式区别 1.4、commit创建镜像方式的本质 2、Dockerfile的使用2.1、Dockerfile指令2.2、nginx镜像制作案例2.3、查看构建历史&#xff…

zookeeper的部署

一 先下载zookeeper 二 解压包 三 修改配置文件 四 把配好文件传到其他的节点上面 五 在每个节点的dataDir指定的目录下创建一个 myid 的文件 六 配置zook的启动脚本 七 设置开机自启 八 分别启动 九查看当前状态service zookeeper status 十 总结 一 先下载zookeeper …

疯了!终于有人告诉我什么是重定向 管道命令 环境变量PATH!

一、了解Linux目录配置标准FHS FHS本质:是一套规定Linux目录结构,软件建议安装位置的标准。 (使用Linux来开发产品或者发布软件的公司、个人太多,如果每家公司或者个人都按照自己的意愿来配置文件或者软件的存放位置,这无疑是一…

springboot高级

springboot 进阶 SpringBoot 整合 Mybatis【重点】 SpringBoot单元测试【掌握】 SpringBoot整合SpringMVC【掌握】 SpringBoot异常处理【掌握】 SpringBoot定时任务【掌握】 SpringBoot打包【掌握】 一、SpringBoot 整合 Mybatis 1、SpringBoot 整合 Mybatis MyBatis …

【项目学习1】如何将java对象转化为XML字符串

如何将java对象转化为XML字符串 将java对象转化为XML字符串,可以使用Java的XML操作库JAXB,具体操作步骤如下: 主要分为以下几步: 1、创建JAXBContext对象,用于映射Java类和XML。 JAXBContext jaxbContext JAXBConte…

OSPF在MGRE上的实验

实验题目如下: 实验拓扑如下: 实验要求如下: 【1】R6为ISP只能配置ip地址,R1-5的环回为私有网段 【2】R1/4/5为全连的MGRE结构,R1/2/3为星型的拓扑结构,R1为中心站点 【3】所有私有网段可以互相通讯&…

什么是迭代,什么是可迭代对象

目录 引言 迭代的概念 迭代的作用 什么是可迭代对象 如何判断可迭代对象 经典案例 注意事项 总结 引言 在编程中,迭代是一种重要的概念,用于处理和访问集合中的元素。它是一种不断重复的过程,可以帮助我们遍历、访问以及处理各种数据…

Linux计划任务管理at、crond

一、单次任务at at命令可以设置在一个指定的时间执行一个指定任务,只能执行一次,使用前确认系统开启了atd服务。 例如:定时执行某命令或脚本, 1、输入at 19:00,回车; 2、输入需要执行的命令或脚本文件&am…

6.s081/6.1810(Fall 2022)Lab5: Copy-on-Write Fork for xv6

前言 本来往年这里还有个Lazy Allocation的,今年不知道为啥直接给跳过去了。. 其他篇章 环境搭建 Lab1: Utilities Lab2: System calls Lab3: Page tables Lab4: Traps Lab5: Copy-on-Write Fork for xv6 参考链接 官网链接 xv6手册链接,这个挺重要…

TeeChart NET for MAUI Crack

TeeChart NET for MAUI Crack 跨平台图表-移动或桌面应用程序的核心图表代码相同。 图表集合-60多种图表类型和50多种财务和统计指标。 图表类型 60多种2D和3D图表类型以及多种组合,包括: 标准:线条(条形)、条形、区域、饼图、快线、点(散点…

pycharm打开terminal报错

Pycharm打开终端报错如何解决?估计是终端启动conda不顺利,需要重新设置路径。参考以下文章的做法即可。 Windows下Pycharm中Terminal无法进入conda环境和Python Console 不能使用 给pycharm中Terminal 添加新的shell,才可以使用conda环境 W…

【果树农药喷洒机器人】Part4:果树冠层图像实例分割模型优化

文章目录 一、引言二、数据集制作2.1图像采集2.2图像标注与增强 三、构建柑橘树冠实例分割模型结构3.1优化特征提取网络3.2U-Net替换FCN 一、引言 为准确获取柑橘树冠的生长信息,实现果树喷药机器人的精准喷施,对处于多种生长阶段的柑橘树冠进行图像分割…

职责链模式(C++)

定义 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 应用场景 在软件构建过程中,一个请求可能被多个对象处理,…

防火墙第二次作业

一、什么是防火墙? 百度给出个一个定义:防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 通俗的来讲&#…

wordpress 打开缓慢处理

gravatar.com 头像网站被墙 追踪发现请求头像时长为21秒 解决方案一 不推荐,容易失效,网址要是要稳定为主,宁愿头像显示异常,也不能网址打不开 网上大部分搜索到的替换的CDN网址都过期了,例如:gravatar.du…