Docker进阶篇-compose容器编排

news2024/11/26 22:48:18

一、描述

Docker-ComposeDocker官方的开源项目,负责实现对Docker容器集群的快速编排。

ComposeDocker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。需要定义

一个YAML格式的配置文件docker-compose.yml,配置好多个容器之间的调用关系,然后只需要

一个命令就能同时启动/关闭这些容器。

Docker建议我们每个容器中只运行一个服务,因为Docker容器本身占用资源极少,所以最好是将

每个服务单独的分割开来。但是如果我们需要同时部署多个服务,每个服务单独构建镜像构建容器

就会比较麻烦。所以Docker官方推出了docker-compose多服务部署的工具。

Compose允许用户通过一个单独的docker-compose.yml模板文件来定义一组相关联的应用容器

为一个项目(project)。可以很容易的用一个配置文件定义一个多容器的应用,然后使用一条指

令、安装这个应用的所有依赖,完成构建。

官网:Compose file version 3 reference | Docker Docs

官网下载:Overview of installing Docker Compose | Docker Docs

二、安装Docker-Compose

#这里是在centos 7上安装
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
#若因网络问题无法直接下载,下载的文件放到/usr/local/bin目录下,命名为docker-compose
# 添加写的权限
chmod +x /usr/local/bin/docker-compose
# 查看是否安装成功
docker-compose version  或者  docker-compose --version

 

若要卸载Docker Compose

rm usr/local/bin/docker-compose

这里别卸载。

三、Compose核心概念

文件:docker-compose.yml

服务(service):一个个应用容器实例,比如mysql容器、nginx容器、redis容器等

工程(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml

定义

四、Compose使用的三个步骤

  1. 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
  2. 编写docker-compose.yml,定义一个完整的业务单元,安排好整体应用中的各个容器服务
  3. 执行docker-compose up命令,来启动并运行整个应用程序,完成一键部署上线 

五、Compose常用命令

执行命令时,需要在对应的docker-compose.yml文件所在目录下执行。

  • 查看帮助
docker-compose -h
  • 启动所有docker-compose服务
docker-compose up
  • 启动所有docker-compose服务并后台运行
docker-compose up -d
  • 停止并删除容器、网络、卷、镜像
docker-compose down
  • 进入容器实例内部
# docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose exec yml里面的服务id /bin/bash
  • 展示当前docker-compose编排过的运行的所有容器
docker-compose ps
  • 展示当前docker-compose编排过的容器进程
docker-compose top
  •  查看容器输出日志
docker-compose log yml里面的服务id
  • 检查配置
docker-compose config
# 有问题才输出
docker-compose config -q
  • 重启服务
docker-compose restart
  • 启动服务
docker-compose start
  • 停止服务
docker-compose stop

六、Compose编排微服务

1、编写docker-compose.yml文件

# docker-compose文件版本号
version: "3"

# 配置各种容器服务
services:
  microService:
    image: fanhe_docker:1.6
    container_name: ms01  # 容器名称,如果不指定,会生成一个“目录前缀_服务”的容器名
    ports:
      - "6001:6001"
    volumes:
      - /app/microService:/data
    networks:
      - springboot_network
    depends_on:  # 配置该容器服务所依赖的容器服务
      - redis
      - mysql

  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:data
    networks:
      - springboot_network
    command: redis-server /etc/redis/redis.conf

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db_springboot'
      MYSQL_USER: 'springboot'
      MYSQL_PASSWORD: 'springboot'
    ports:
      - "3306:3306"
    volumes:
      - /app/mysql/db:/var/lib/mysql
      - /app/mysql/conf/my.cnf:/etc/my.cnf
      - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - springboot_network
    command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问

networks:
  # 创建 springboot_network 网桥网络
  springboot_network:

2、构建镜像

docker build -t fanhe_docker:1.6

3、运行容器

  • 进行语法检查
docker-compose config -q
  • 运行容器
docker-compose up -d
  • 关停容器
docker-compose stop

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

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

相关文章

Stable Diffusion 模型下载:国风3 GuoFeng3

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十推荐提示词下载地址模型介绍 欢迎使用GuoFeng3模型 - 这是一个中国华丽古风风格模型,也可以说是一个古风游戏角色模型,具有2.5D的质感。 条目内

【UE Niagara】环绕在人物周围的闪电效果

效果 步骤 1. 首先下载一个螺旋形状的静态网格体并导入UE(地址:https://pan.baidu.com/s/1l9Bn5lQd7tDBu3CMs4c2aA?pwd7myr ) 2. 创建一个Niagara系统 使用Empty模板 这里命名为“NS_LightingAround” 打开“NS_LightingAround”&#xff0…

Matplotlib绘制炫酷柱状图的艺术与技巧【第60篇—python:Matplotlib绘制柱状图】

文章目录 Matplotlib绘制炫酷柱状图的艺术与技巧1. 簇状柱状图2. 堆积柱状图3. 横向柱状图4. 百分比柱状图5. 3D柱状图6. 堆积横向柱状图7. 多系列百分比柱状图8. 3D堆积柱状图9. 带有误差线的柱状图10. 分组百分比柱状图11. 水平堆积柱状图12. 多面板柱状图13. 自定义颜色和样…

STC系列单片机的中断系统

目录 一、中断系统的定义 二、STC15系列单片机的中断请求源及结构图 三、中断查询表以及触发方式 四、在keil c中如何声明中断函数 五、外部中断 六、基于STC15芯片实战中断系统的使用 (1)外部中断2/外部中断3来检测门的开关状态 (2&a…

Centos 内存和硬盘占用情况以及top作用

目录 只查看内存使用情况: 内存使用排序取前5个: 硬盘占用情况 定位占用空间最大目录 top查看cpu及内存使用信息 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&…

RK3399平台开发系列讲解(内存篇)进程内存详解

🚀返回专栏总目录 文章目录 一、虚拟地址映射的物理内存1.1、物理内存1.2、虚拟内存1.2.1、用户态:低特权运行程序1.2.2、内核态:运行的程序需要访问操作系统内核数据二、PageCache三、指标查询命令沉淀、分享、成长,让自己和他人都能有所收获!😄 📢进程消耗的内存包…

车载充电器(OBC)氮化镓(GaN)驱动(高压高功率)设计(第四篇)

上图来自于网络 1、GaN FET概念 GaN FET,全称为Gallium Nitride Field-Effect Transistor(氮化镓场效应晶体管),是一种采用氮化镓(Gallium Nitride, GaN)材料制作的新型功率半导体器件。相较于传统的硅基…

『运维备忘录』之 Cron 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

Vue学习笔记之组件基础

1、组件的定义 一般将 Vue 组件定义在一个单独的 .vue 文件中,称做单文件组件;当然也可以将组件直接定义在js文件中,如下js代码,定义一个组件BlogPost,通过props定义对外暴露属性title,父组件传递title&am…

MySQL 小技巧:xtrabackup 软件包的下载及安装

案例:xtrabackup 软件包的下载及安装 软件包下载:Index of /percona/centos/7/RPMS/x86_64/ CentOS7 默认的数据库版本比较老,因此建议使用 xtrabackup 2.4 版本 // CentOS7 默认的数据库版本比较老,因此建议使用 xtrabackup 2.4 版本 // 安装 CentOS7 默…

【算法与数据结构】647、516、LeetCode回文子串+最长回文子序列

文章目录 一、647、回文子串二、516、最长回文子序列三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、647、回文子串 思路分析:判断一个字符串是否为回文串那么必须确定回文串的所在区间,而一维…

安卓平台valgrind交叉编译

背景 通过上次的文章valgrind跨平台调试及其问题分析,为同事们在大部分平台下进行内存问题分析提供了帮助。但是也遇到了阻塞情况:android 平台,无法交叉编译通过。大家对于编译这件事,似乎天然有一种排斥,本能的拒绝&#xff0c…

全网最详细解法|同济大学|高等数学|第八版|习题1-2

文章目录 同济大学|高等数学|第八版|习题1-2|2.1同济大学|高等数学|第八版|习题1-2|2.2同济大学|高等数学|第八版|习题1-2|2.3同济大学…

[Android] 240204批量生成联系人,短信,通话记录的APK

平常在做测试的时候,需要批量生成很多测试数据; 陌生人 联系人名字的生成支持随机生成,也可以自定义生成,自定义生成陌生人的数据,联系人的名字是否带索引; 通话记录 随机生成通话记录,在生…

Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1

目录 【问题描述】maven环境报错 Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 【解决办法】 检查maven路径是否一致 路径一致的话&#xff0c;更改配置文件settings.xml的镜像源。 添加代码到 <mirrors> <!-- 阿里镜像 --> &l…

LLaMA 模型中的Transformer架构变化

目录 1. 前置层归一化&#xff08;Pre-normalization&#xff09; 2. RMSNorm 归一化函数 3. SwiGLU 激活函数 4. 旋转位置嵌入&#xff08;RoPE&#xff09; 5. 注意力机制优化 6. Group Query Attention 7. 模型规模和训练超参数 8. 分布式模型训练 前置归一化与后置…

如何使用第三方API采集电商数据呢?

电商商家最常唠叨的就是店铺运营难做。每日多平台店铺数据统计汇总繁琐耗时&#xff0c;人工效率偏低&#xff0c;且工作内容有限。 特别是眼下“618&#xff0c;双十一&#xff0c;双十二&#xff0c;年底大促”将至&#xff0c;如何提高运营的效率和质量、保证产品及服务的良…

单片机的50个电路

单片机 电源 声音模块 收音机 485 蓝牙 光耦 can 光敏电阻 单片机 矩阵 单片机电路 时钟 ADC 接口电路 红外发射 显示模块 红外接收 蜂鸣器驱动 流水灯 usb供电 烧录电路 数码管 EEPROM LCD1602电路 数码管 max485 红外开关 译码器 移位寄存器 步进电机控制 复位电路 下载电路 …

普渡机器人CEO预测2024年服务机器人市场将扩大

原创 | 文 BFT机器人 根据普渡科技有限公司的报告&#xff0c;商用服务机器人在东亚地区的应用比其他地方更为广泛。然而&#xff0c;预计到2024年&#xff0c;全球其他地区也将迎头赶上。这家总部位于中国深圳的公司自豪地宣称&#xff0c;它已经成为中国最大的此类机器人出口…

SpringCloud + Nacos环境下抽取Feign独立模块并支持MultipartFile

文章目录 一、前提条件和背景1. 前提2. 背景 二、Feign模块1. 依赖引入2. application.yaml配置3. 扩展支持MultipartFile4. 将media-api注册到feign 三、Media模块四、Content模块1. 引入依赖2. 启用FeignClient3. 测试 五、需要澄清的几点 一、前提条件和背景 1. 前提 已经…