当前位置: 首页 > news >正文

Docker Compose编排

一、概念

1、Docker Compose是什么

Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具

通过 Compose,不需要使用shell脚本来启动容器,而使用 YAML 文件来配置应用程序需要的所有服务

然后使用一个命令,根据 YAML 的文件配置创建并启动所有服务

Docker Compose非常适合组合使用多个容器进行开发的场景

2、YAML

YAML(YAML Ain’t a Markup Language)是一个可读性高,用来表达数据序列化的格式

文件格式及编写注意事项

  • 不支持制表符tab键缩进,需要使用空格缩进

  • 通常开头缩进2个空格

  • 字符后缩进1个空格,如冒号、逗号、横杆

  • 用#号注释

  • 如果包含特殊字符用单引号引起来

  • 布尔值必须用引号括起来

3、yml 文件配置指令参考

version:指定此yml文件基于的compase的版本

services:指定创建容器的服务选项

服务名:例如nginx等

hostname:容器主机名

build :指定构建镜像上下文路径

context:上下文路径

dockerfile:指定构建镜像的 Dockerfile 文件名

ports:暴露容器端口,与-p相同,但端口不能低于60;例如:- 1234:80

networks:加入顶级networks下配置的网络

deploy:指定部署和运行服务相关配置,只能在Swarm模式使用

volumes:挂载宿主机路径或命令卷

image:指定容器运行的镜像

command:执行命令,覆盖默认命令

container_name:指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale(扩展)

environment:添加环境变量

restart:重启策略,定义是否重启容器;no(默认,不重启),always(总是重启),no-failure(退出状态非0时重启),unless-stoped(容器退出时,忽略守护进程启动前停止的容器)

networks:配置网络,指定网卡设备等

4、Compose命令说明

基本的使用格式

docker-compose [options][COMMAND][ARGS...]

相关选项

--verbose:输出更多调试信息
--version:打印版本并退出
-f,--file FILE:使用特定的compose模板文件,默认为docker-compose.yml
-p, --project-name NAME:指定项目名称,默认使用目录名称

Docker Compose常用命令

字段

描述

build

重新构建服务

ps

列出容器

up

创建和启动容器

exec

在容器里面执行命令

scale

指定一个服务容器启动数量

top

显示正在运行的容器进程

logs

查看服务容器的输出

down

删除容器、网络、数据卷和镜像

stop/start/restart

停止/启动/重启服务

二、compose的安装和使用

1、安装compose

环境部署所有主机安装docker环境(内容为docker基础)

yum install docker-ce -y
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composecp -p docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-composemkdir /root/compose_nginx

2、使用compose编排创建容器(以nginx为例)

编写yml文件

vim /root/compose_nginx/docker-compose.yml
version: '3'
services:nginx:hostname: nginxbuild:context: ./nginxdockerfile: Dockerfileports:- 1216:80- 1217:443networks:- clustervolumes:- ./wwwroot:/usr/local/nginx/html
networks:cluster:

放入相关文件

mkdir nginx
mkdir wwwroot
echo "this is nginx" > wwwroot/index.htmlyum -y install tree
tree ./

执行yml文件创建容器

docker-compose -f docker-compose.yml up -d

相关文章:

Docker Compose编排

一、概念1、Docker Compose是什么Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具通过 Compose,不需要使用shell脚本来启动容器,而使用 YAML 文件来配置应用程序需要的所有服务然后使用一个命令,根据 YAML 的文…...

Docker进阶 - 11. Docker Compose 编排服务

注:本文只对一些重要步骤和yml文件进行一些讲解,其他的具体程序没有记录。 目录 1. 原始的微服务工程编排(不使用Compose) 2. 使用Compose编排微服务 2.1 编写 docker-compose.yml 文件 2.2 修改并构建微服务工程镜像 2.3 启动 docker-compose 服务…...

福利篇2——嵌入式岗位笔试面试资料汇总(含大厂笔试面试真题)

前言 汇总嵌入式软件岗位笔试面试资料,供参考。 文章目录 前言一、公司嵌入式面经1、小米1)面试时长2)面试问题2、科大讯飞1)面试时长2)面试题目3、其余公司面经二、嵌入式笔试面试资料(全)三、嵌入式岗位薪资报告四、硬件岗位薪资报告一、公司嵌入式面经 1、小米 1)…...

[ubuntu]LVM磁盘管理

LVM是 Logical Volume Manager(逻辑卷管理)的简写,是Linux环境下对磁盘分区进行管理的一种机制,由Heinz Mauelshagen在Linux 2.4内核上实现。LVM可以实现用户在无需停机的情况下动态调整各个分区大小。1.简介 ​ LVM本质上是一个…...

开源流程引擎Camunda

开源流程引擎Camunda 文章作者:智星 1.简介 Camunda是一个轻量级的商业流程开源平台,是一种基于Java的框架,持久层采用Mybatis,可以内嵌集成到Java应用、SpringBooot应用中,也可以独立运行,其支持BPMN&a…...

【PTA Advanced】1155 Heap Paths(C++)

目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sample Output 2: Sample Input 3: Sample Output 3: 思路 代码 题目 In computer science, a heap is a specialized tree-based data structure that s…...

Educational Codeforces Round 129 (Rated for Div. 2)

A. Game with Cards. 题目链接 题目大意: Alice和Bob玩卡牌。Alice有n张,Bob有m张。第一轮选手出一张数字卡牌。第二轮另一个选手要选择一张比他大的,依此类推。谁没有牌可出则输。问Alice和Bob分别先手时,谁赢?输出…...

[数据库]表的增删改查

●🧑个人主页:你帅你先说. ●📃欢迎点赞👍关注💡收藏💖 ●📖既选择了远方,便只顾风雨兼程。 ●🤟欢迎大家有问题随时私信我! ●🧐版权:本文由[你帅…...

分享77个JS菜单导航,总有一款适合您

分享77个JS菜单导航,总有一款适合您 77个JS菜单导航下载链接:https://pan.baidu.com/s/1e_384_1KC2oSTDy7AaD3og?pwdzkw6 提取码:zkw6 Python采集代码下载链接:https://wwgn.lanzoul.com/iKGwb0kye3wj class ChinaZJsSeleni…...

kubernetes -- 核心组件介绍以及组件的运行流程

常用组件大白话说 如果想要官方的,详细的信息,请看官方文档。 https://kubernetes.io/zh-cn/docs/concepts/overview/components/ 现在介绍一些核心的概念: etcd:存储所有节点的信息,节点上部署的容器信息等都存在数…...

微信小程序Springboot短视频分享系统

3.1小程序端 用户注册页面,输入用户的个人信息点击注册即可。 注册完成后会返回到登录页面,用户输入自己注册的账号密码即可登录成功 登录成功后我们可以看到有相关的视频还有视频信息,我的信息等。 视频信息推荐是按照点击次数进行推荐的&am…...

排序算法学习

文章目录前言一、直接插入排序算法二、折半插入排序算法三、2路插入排序算法四、快速排序算法学习前言 算法是道路生涯的一个巨大阻碍。今日前来解决这其中之一:有关的排序算法,进行实现以及性能分析。 一、直接插入排序算法 插入排序算法实现主要思想…...

常见漏洞之 struts2+ jboss

数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 01 Struts2相关介绍 》Struts2概述 》Struts2历史漏洞(1) 》…...

leetcode470 用Rand7()实现Rand10()

力扣470 第一步:根据Rand7()函数制作一个可以随机等概率生成0和1的函数rand_0and1 调用Rand7()函数,随机等概率生成1,2,3,4,5,6,7 这时我们设置:生成1,2&a…...

JSON数据解析商品详情API

大家有探讨稳定获取商品主图、jiage、标题,及sku的完整解决方案。这个引起了我技术挑战的兴趣,然后各种网上资料查询,最终还是不负努力,找到更好的解决方案,不再出现任何滑块验证码,完全绕过,实…...

服务端开发Java面试复盘篇1

上周投了一些简历,约了8-9家面试,其中完成了3家的第一轮面试,由于面试的是Java 的实习生,感觉问的题目都比较基础,不过有些问题回答的不是很好,在这里对回答的不太好的题目做一下总结和复盘。 目录 一、后…...

Android框架WiFi架构

同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。 一、wpa_supplicant:wpa_supplicant本身开源项目源码,被谷歌收购之后加入Android移…...

rt-thread 移植调试记录

rt-thread 移植调试记录 记录rt-thread移植的过程。这里移植仅仅是利用rt-thread源码目录已经移植好的文件,组建自己的工程,不需要自己编写汇编完成底层移植。 1. 搭建基础工程 这里使用的是正点原子的潘多拉开发板,MCU为stm32l475。需要先…...

红外线额温枪与红外线温度传感器的原理分析

额温枪主要针对测量人体额温基准而设计,使用也非常简单方便。测体温可以达到一秒即可准确测量。并且不需要接触人体,隔着空气即可一键测温。非常适合家庭、学校、企业等场所。 但是由于其精度原因(一般为 0.2 ℃,也有更低的&#…...

2023牛客寒假算法集训营4

目录A. [清楚姐姐学信息论](https://ac.nowcoder.com/acm/contest/46812/A)(数学)B. [清楚姐姐学构造](https://ac.nowcoder.com/acm/contest/46812/B)(数学 构造)C. [清楚姐姐学01背包(Easy Version)](https://ac.nowcoder.com/…...

定时任务标准化合约:解决Cron Job协作混乱与状态管理难题

1. 项目概述:为定时任务建立“交通规则”在自动化运维和持续集成(CI)领域,定时任务(Cron Job)就像是系统里的“定时闹钟”和“自动工人”。它们负责在后台默默执行数据备份、日志清理、状态检查、报告生成等…...

DeepSeek Serverless冷启动优化实录:从1200ms到47ms的7次迭代,附Go/Rust双语言Runtime调优参数表

更多请点击: https://intelliparadigm.com 第一章:DeepSeek Serverless冷启动优化全景概览 DeepSeek Serverless 平台在 AI 模型推理场景中面临显著的冷启动延迟挑战,尤其当模型权重加载、CUDA 上下文初始化与 Python 运行时预热叠加时&…...

Bevy引擎拾取系统:从射线检测到事件冒泡的完整交互方案

1. 项目概述与核心价值在构建交互式应用,尤其是游戏或3D编辑器时,一个基础且高频的需求就是让用户能够用鼠标、触摸屏等指针设备与屏幕上的物体进行交互。简单来说,就是“点选”功能。在Bevy引擎的早期版本中,这个看似简单的功能实…...

终极NDS游戏资源编辑器Tinke:免费开源工具轻松提取和修改任天堂DS游戏文件

终极NDS游戏资源编辑器Tinke:免费开源工具轻松提取和修改任天堂DS游戏文件 【免费下载链接】tinke Viewer and editor for files of NDS games 项目地址: https://gitcode.com/gh_mirrors/ti/tinke 你是否曾经好奇任天堂DS游戏内部包含了哪些精美的图像、动听…...

华为会议转任务AI精准识别整理,省事更清晰,轻松搞定工作落地

"找2026华为会议转任务AI的朋友,你要的精准识别整理、落地工作的真实测评来了。不管你是做学术研究要整访谈、转讲座,还是开会长音频要扒任务,我测了大半个月,直接给你掏实底。我接触太多做学术的朋友,都踩过AI转…...

Avalonia AI助手插件:为.NET跨平台UI开发注入专家级智能

1. 项目概述:一个为Avalonia开发者量身定制的AI助手插件如果你正在使用Avalonia这个跨平台的.NET UI框架,并且同时也在探索如何利用像Claude、ChatGPT、GitHub Copilot这样的AI助手来提升开发效率,那么你很可能遇到过这样的困境:当…...

ARM GIC中断控制器架构与关键寄存器详解

1. ARM GIC中断控制器架构概述ARM通用中断控制器(GIC)是现代ARM处理器中负责中断管理的核心组件,它实现了复杂的中断分发和处理机制。GIC架构从v2版本发展到现在的v4版本,功能不断增强,支持多核处理、虚拟化扩展和安全隔离等高级特性。GIC主要…...

codebase-digest:自动化代码库分析工具的设计原理与工程实践

1. 项目概述:当代码库变成“黑盒”,我们如何快速理解它?你有没有接手过一个庞大而陌生的代码库?面对成千上万的文件和错综复杂的依赖关系,那种感觉就像被扔进了一个没有地图的迷宫。传统的做法是,你得像考古…...

观察taotoken用量看板如何清晰呈现各模型token消耗

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察taotoken用量看板如何清晰呈现各模型token消耗 对于使用大模型API的开发者或团队管理者而言,成本的可观测性与可控…...

DeepSeek(V3为主、兼顾V2/R1)算力优化细节详解

DeepSeek(V3为主、兼顾V2/R1)算力优化细节详解以下是针对核心优化模块的深入技术拆解,包含MLA数学原理、FP8精准实现、无辅助损失负载均衡、R1-GRPO算法核心,内容基于DeepSeek-V3官方技术报告及2026年5月公开权威分析。DeepSeek系…...