docker系列(9) - docker-compose

news2024/11/25 19:22:18

文章目录

  • 9. compose编排
    • 9.1 介绍
    • 9.2 安装
    • 9.3 compose常用命令
    • 9.4 编排微服务
      • 9.4.1 准备docker-compose.yml
      • 9.4.2 启动服务
      • 9.4.3 测试验证

9. compose编排

9.1 介绍

多服务部署工具,通过一个docker-compose.yml模板文件,定义一组关联的应用容器为一个项目。
简单来说,就是当我们一个项目有多个服务需要启动时,通过docker-compose直接一键启动,就可以将所有相关的服务同时启动或者停止。

9.2 安装

参考官方安装文档:https://docs.docker.com/compose/install/linux/
以下两种方式都可以:
第一种:包管理器安装

sudo yum install docker-compose-plugin

第二种:手工安装

curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 通常不需要执行这句
#sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

#查看版本
docker-compose --version

#卸载方法
sudo rm /usr/local/bin/docker-compose

9.3 compose常用命令

说明命令
docker-compose -h帮助
docker-compose up启动所有docker-compose服务
docker-compose up -d启动所有docker-compose服务并后台运行
docker-compose down停止并删除容器,网络,卷,镜像
docker-compose exec yml里面的服务id进入容器内部,停止并删除容器,网络,卷,镜像
docker-compose ps展示当前运行的所有容器
docker-compose top展示当前运行的容器进程
docker-compose logs yml的服务id查看容器输出日志
docker-compose config检查配置
docker-compose config -q检查配置,有问题才输出
docker-compose restart重启服务
docker-compose start启动服务
docker-compose stop停止服务

9.4 编排微服务

使用docker-compose来启动springboot项目。
使用到springboot、redis、mysql组件。

9.4.1 准备docker-compose.yml

注意需要提前准备下面这些:
redis配置文件: /docker/redis/redis.conf
springboot: 使用7.6.3中打包的镜像springboot:1.0
mysql的配置文件:/docker/mysql/conf/my.cnf

version: "3"

services: 
  bootService:
    build: .
    image: springboot:1.0
    container_name: springboot
    environment:
      SPRING_PROFILES_ACTIVE: prod
    ports:
      - "9002:9002"
    volumes:
      - /app/microService:/data
    networks:
      - bridge
    depends_on:
      - redis
      - mysql

  redis:
    image: redis:6.2.13
    container_name: redis
    privileged: true
    ports:
      - 6379:6379
    environment:
      - TZ=Asia/Shanghai
      - TAKE_FILE_OWNERSHIP=true
    volumes:
      - /docker/redis/data:/data 
      - /docker/redis/redis.conf:/etc/redis/redis.conf
    networks:
      - bridge
    command: redis-server /etc/redis/redis.conf 
  
  mysql:
    image: mysql:5.7
    container_name: mysql
    privileged: true
    ports:
      - "3306:3306"
    networks:
      - bridge
    volumes:
      - /docker/mysql/log:/var/log/mysql 
      - /docker/mysql/data:/var/lib/mysql
      - /docker/mysql/conf/:/etc/mysql/conf.d
    environment:
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_ALLOW_EMPTY_PASSWORD: "no"
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问

networks:
  bridge: 

9.4.2 启动服务

# 先检查配置是否有异常
docker-compose config -q

# 启动所有容器
#第一次测试可以不使用-d
docker-compose up   

在这里插入图片描述

在这里插入图片描述

一切正常,转为后台运行

# 先移除所有的
docker-compose down

# 再后台运行
docker-compose -d up

9.4.3 测试验证

Commands:
  build       Build or rebuild services
  config      Parse, resolve and render compose file in canonical format
  cp          Copy files/folders between a service container and the local filesystem
  create      Creates containers for a service.
  down        Stop and remove containers, networks
  events      Receive real time events from containers.
  exec        Execute a command in a running container.
  images      List images used by the created containers
  kill        Force stop service containers.
  logs        View output from containers
  ls          List running compose projects
  pause       Pause services
  port        Print the public port for a port binding.
  ps          List containers
  pull        Pull service images
  push        Push service images
  restart     Restart service containers
  rm          Removes stopped service containers
  run         Run a one-off command on a service.
  start       Start services
  stop        Stop services
  top         Display the running processes
  unpause     Unpause services
  up          Create and start containers
  version     Show the Docker Compose version information
  wait        Block until the first service container stops

例如重启服务:

# 查看服务
docker-compose ls

#重启服务
docker-compose restart bootService

# 启动服务
docker-compose start bootService

# 停止服务
docker-compose stop bootService

在这里插入图片描述

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

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

相关文章

Android shape记录

之前一直觉得dataPath很好用&#xff0c;可以画各种矢量图。今天发现用shape画图也不错&#xff0c;记录一下自己用shape画的图。 一般使用shape就是定义形状、stroke边、solid内部、corners圆角等&#xff0c;代码 <?xml version "1.0" encoding "utf-8&q…

数据结构-快速排序-C语言实现

引言&#xff1a;快速排序作为一种非常经典且高效的排序算法&#xff0c;无论是工作还是面试中广泛用到&#xff0c;作为一种分治思想&#xff0c;需要熟悉递归思想。下面来讲讲快速排序的实现和改进。 老规矩&#xff0c;先用图解来理解一下&#xff1a;&#xff08;这里使用快…

【时区】Flink JDBC 和CDC时间字段时区 测试及时间基准

关联文章: 各种时间类型和timezone关系浅析 一、测试目的和值 1. 测试一般的数据库不含time zone的类型的时区。 mysql timestamp(3) 类型postgres timestamp(3) 类型sqlserver datetime2(3) 类型oracle类型 TIMESTAMP(3) 类型 在以下测试之中均为ts字段 2.测试CDC中元数据…

为什么 Go 语言 struct 要使用 tags

在 Go 语言中&#xff0c;struct 是一种常见的数据类型&#xff0c;它可以用来表示复杂的数据结构。在 struct 中&#xff0c;我们可以定义多个字段&#xff0c;每个字段可以有不同的类型和名称。 除了这些基本信息之外&#xff0c;Go 还提供了 struct tags&#xff0c;它可以用…

IPsec_SSL VPN身份鉴别过程简要

一、IPsec VPN身份鉴别&#xff08;参考国密标准《GMT 0022-2014 IPsec VPN技术规范》&#xff09; IKE第一阶段&#xff08;主模式&#xff09; “消息2”由响应方发出&#xff0c;消息中具体包含一个SA载荷&#xff08;确认所接受的SA提议&#xff09;、响应方的签名证书和…

1分钟快速实现Redis数据对比

在上篇「Redis高效、安全的不停机数据迁移方案」的文章中&#xff0c;介绍了NineData在Redis迁移场景下的性能和优势。因为数据在主备、多云和多区域环境之间的迁移流动&#xff0c;难免会产生数据一致性的问题&#xff0c;而结构与数据不一致往往是导致故障的原因之一。所以&a…

分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测

分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测 目录 分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测&…

stl格式-3D三角形

文章目录 什么是stl文件?格式首选stl的语法1.这是一个stl格式的文件:(ASCII码)2.下面先举个例子(难度略微提示)补充:关于\<\<我试了一下:这个法线你随便写好像也没问题\>> 3.来个立方体4.最后再写一个由三个直角形组成的立方体(直棱锥)5.amend 修正(右手定则,法线…

纯css html 真实水滴效果

惯例,不多说直接上图 秉承着开源精神,我们将这段代码无私地分享给大家&#xff0c;因为我们深信&#xff0c;信息的共享和互相学习是推动科技进步的关键。我们鼓励大家在使用这段代码的同时&#xff0c;也能够将其中的原理、思想和经验分享给更多的人。 这份代码是我们团队用心…

基于Linux系统聊天室增加数据库sqlite功能实现(08)

全部掌握后&#xff0c;开始进入本篇。 一. 调整目录结构 为了方便编译&#xff0c;现在我们将前面文章的代码结构做如下调整。 rootubuntu:/mnt/hgfs/code/chat# tree . . ├── chat_client │ ├── include │ ├── Makefile │ ├── obj │ │ └── …

面试总结之Spring篇

一、AOP 1、什么是AOP 1.1、概述 AOP&#xff08;Aspect-Oriented Programming&#xff09;&#xff1a;面向切面编程&#xff0c;即把一些业务逻辑中的相同代码抽取出来&#xff0c;让业务逻辑更加简练清爽 如果要CRUD写一堆业务&#xff0c;可如何实现业务代码前后进行打印…

自动化测试工具之Selenium IDE录制教程

一、下载Selenium IDE 下载传送带&#xff1a;Selenium IDE Open source record and playback test automation for the web 这里Darren洋以firefox火狐浏览器为例&#xff0c;将以上下载url直接在firefox浏览器中打开&#xff0c;点击对应下载按钮后&#xff0c;就会进入添加…

【网络协议】TCP

TCP协议全称为传输控制协议(Transmission Control Protocol).要理解TCP就要从他的特性开始说&#xff0c;这些特性各自之间或多或少各有联结&#xff0c;需要以宏观视角来看待。 目录&#xff1a; 1.TCP报文格式 因为报文解释过于繁琐&#xff0c;具体内容请看这篇文章TCP报文…

架构案例2022(四十二)

促销管理系统 某电子商务公司拟升级其会员与促销管理系统&#xff0c;向用户提供个性化服务&#xff0c;提高用户的粘性。在项目立项之初&#xff0c;公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性&#xff0c;由于当前用户规模不大&#xff0c;业务也相对…

PDF文件超出上传大小?三分钟学会PDF压缩

PDF作为一种流行的文档格式&#xff0c;被广泛用于各种场合&#xff0c;然而有时候PDF文件的大小超出了上传限制&#xff0c;这时候我们就需要采取一些措施来减小PDF文件的大小&#xff0c;下面就给大家分享几个方法&#xff0c;一起来学习下吧~ 方法一&#xff1a;嗨格式压缩大…

windows WSL配置cuda,pytorch和jupyter notebook

机器配置 GPU: NVIDIA Quadro K2000 与 NVIDIA 驱动程序捆绑的CUDA版本 但按照维基百科的描述&#xff0c;我的GPU对应的compute capability3.0&#xff0c;允许安装的CUDA最高只支持10.2&#xff0c;如下所示。 为什么本地会显示11.4呢&#xff1f;对此&#xff0c;GPT是这…

R语言分析:如何轻松地把数据分为三、四、五等份?

有网友问了&#xff0c;我如何对连续型资料进行分组&#xff0c;常见的有按照中位数分组、四分位数分组&#xff0c;甚至分为5组。 这个问题其实很简单的了。 用两个函数&#xff0c;一个是quantile函数&#xff0c;另外一个是cut函数 1. quantile()函数的应用 该函数目的是获得…

白盒 SDK 加密 —— Go 语言中直调 C 动态库实现

文章目录 1.背景2.实现方式2.1.C 库 .so 文件生成2.2.C 库 .h 文件2.3.Goland 调用实现2.3.1 整体2.3.2 注释块部分2.3.3 逻辑实现部分 3.小结 1.背景 在重构的历史项目中&#xff0c;有一点是语言转换&#xff1a;从 PHP 转至 Goland &#xff0c;在压缩资源的同时&#xff0…

SpringMVC+统一表现层返回值+异常处理器

一、统一表现层返回值 根据我们不同的处理方法&#xff0c;返回的数据格式都会不同&#xff0c;例如添加只返回true|false&#xff0c;删除同理&#xff0c;而查询却返回数据。 Result类 为此我们封装一个result类来用于表现层的返回。 public class Result {//描述统一格式…

B. Sets and Union

题目&#xff1a; 样例&#xff1a; 输入 4 3 3 1 2 3 2 4 5 2 3 4 4 4 1 2 3 4 3 2 5 6 3 3 5 6 3 4 5 6 5 1 1 3 3 6 10 1 9 2 1 3 3 5 8 9 1 2 4 28输出 4 5 6 0 思路&#xff1a; 这里题目的意思是&#xff0c;要求合并尽可能多的集合&#xff0c;使它的集合大小最大&…