docker-compose yml配置、常用命令
下载完docker-compose后,如果想使用docker-compose命令开头,需要创建软连接
sudo ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose
1.docker-compose.yml文件编排
一个 docker-compose.yml 文件的顶层元素有:version、name、service、networks、volumes、configs、secrests,涉及的配置非常多,这里只是稍微讲一下一些比较常用的
1.1 version
version: "3.0"
version 元素是编排文件的格式版本,而非Docker Compose 或 Docker 引擎的版本号
services
services元素用于定义不同的应用服务,在编排文件中是必需的,是我们定义容器怎么启动编排、怎么依赖的地方。
- build
build元素声明怎么通过源代码从本地创建一个镜像。
可以将build指定为定义上下文路径的单个字符串,这个路径字符串以是绝对路径或者相对路径的方式指向Dockerfile文件或者Dockerfile所在的文件夹,不推荐使用绝对路径,因为这样会影响编排文件的可移植性。
services:serviceA: # serviceA 是简略版构建,serviceB是详细构建build: ../webappserviceB:build:context: ../../backend # 上下文路径,相对于compose.yamldockerfile: ./service.dockerfile # Dockerfile文件路径,相对于context,这种方式可以指定dockerfile文件名args: type:cdc3b19 #添加构建参数,构造参数必须是Dockerfile已经定义的labels:description: "service B" #设置构建镜像的标签。target: publish # 多层构建,可以指定构建哪一层
- image
指定构建容器使用的镜像,如果本地镜像不存在,则会根据pull_policy配置拉取镜像,如果build和image同时存在,build优先(如果本地之前已经build过一次,将会使用pull_policy的默认规则进行构建),构建完将使用image指定的名字和标记对其进行标记。
services:nginx:image: custom/nginxbuild: .
构建出的镜像名称叫做 custom/nginx
- pull_policy
编码文件拉取镜像的策略- always:从仓库拉取,不使用本地缓存
- never:只要本地缓存,不从仓库拉取,如果本地没有镜像则报错
- missing:优先使用本地,否则从仓库拉取,这个是默认值
- build:从本地源码构建,就算镜像存在也会
version: '3.4'
name: testservices:flaskdemo:container_name: flask_test_bsimage: flask_demo-flaskdemo # 本地已经有这个镜像了pull_policy: build 但是仍会重新build,并且镜像名是flask_demo-flaskdemobuild:context: .dockerfile: ./Dockerfileports:- 5000:5000
- environment
设置环境变量,相当于docker run -e
services:mysql:image: mysql:5.7ports:- "3306:3306"environment:MYSQL_ROOT_PASSWORD: root #字典格式
- depends_on
配置服务依赖关系,当前服务启动时会先启动被依赖的服务,必须等到被依赖的服务进行"ready"状态,当前服务才会启动,当前服务停止后被依赖的服务才会停止。可以以短语法和长语法两种方式书写
services:web:build: .depends_on:-db-redisredis:image: redisdb:image: postgres
- network_mode
设置网络模式 (默认是bridge)- none 禁用所有容器的网络
- host 它使容器可以原始访问主机的网络接口
- service:{name} 它只允许容器访问指定服务
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"
- networks
配置容器连接的网络,需要引用顶级 networks 下的条目,同一网络上的其他容器可以使用服务名称来连接到对应容器的服务,也可以设置别名,通过别名来连接。
services:some-service:networks:-some-network-other-network
networks:some-network:other-network:
- ports
配置端口映射 - volumes
指定宿主机目录和容器目录映射,如果一个主机目录只是由单个服务使用,可以直接在服务定义里面配置,如果一个路径要跨多个服务复用,则必须在顶层的volumes中配置
volumes:# 只需指定一个路径,让引擎创建一个卷- /var/lib/mysql# 指定绝对路径映射- /opt/data:/var/lib/mysql# 相对于当前compose文件的相对路径- ./cache:/tmp/cache# 用户家目录相对路径- ~/configs:/etc/configs/:ro# 命名卷- datavolume:/var/lib/mysql
- scale
配置一个服务启动容器的个数,不过这个指令已经被deploy指令中的replicas替代了,虽然还可以使用,但是会产生警告。
services:redis:image: redis:alpinescale: 2
或者
services:mysql: image: redis:alpinedeploy:replicas: 2
- networks
网络是允许服务彼此通信的层,可以通过在顶层下指定网络名称来创建网络,服务可以通过在服务下指定网络名称来连接到网络,连接到相同网络的服务能够进行相互通讯。如果没有显式配置网络,则compose在编排的时候会创建默认网络。
version: '3.4'
name: testservices:flaskdemo:container_name: flask_test_bsimage: flask_demo-flaskdemo# pull_policy: buildbuild:context: .dockerfile: ./Dockerfileports:- 5000:5000networks:- webapi-netredis:image: "redis:alpine"networks:- webapi-netscale: 2networks:webapi-net:
运行 docker compose config 显示

docker compose常用命令
-
docker compose config
config命令用于验证Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因,并不会执行真正的操作 -
docker compose up
它会尝试自动完成构建镜像,创建服务,启动服务,并关联服务相关容器的一系列操作。依赖的服务都也会被自动启动,除非依赖的服务已经处于运行状态。
大部分时候都可以直接通过该命令来启动一个项目。默认情况,docker-compose up 启动的容器都在前台, 使用 docker-comose up -d,后台运行所有容器
`
–force-recreate 强制重新创建容器,不能与 --no-recreate 同时使用。
–no-recreate 如果容器已经存在了,则不重新创建,不能与 --force-recreate 同时使用。
–scale 在启动的时候设置一个服务启动多少个容器,会覆盖compose.yaml文件中的设置
–no-build 不自动构建缺失的服务镜像。 -
docker compose down
down命令默认会停止并移除 up 命令所启动的容器和创建的网络,但不会移除数据卷 -
docker compose ps -a
列出项目中的所有容器 -
docker compose exec -it 服务名 /bin/bash
进入容器内部 -
docker compose start/stop/restart/pause/unpause/rm services
注意区分service和容器名
启动/停止/重启/暂停/恢复暂停/删除服务 -
docker compose logs -f 【service】
查看容器日志
相关文章:
docker-compose yml配置、常用命令
下载完docker-compose后,如果想使用docker-compose命令开头,需要创建软连接 sudo ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose 1.docker-compose.yml文件编排 一个 docker-compose.yml 文件的顶层元素有ÿ…...
【实战】 七、Hook,路由,与 URL 状态管理(下) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(十三)
文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...
【MySQL】_5.MySQL的联合查询
目录 1. 笛卡尔积 2. 内连接 2.1 示例1:查询许仙同学的成绩 2.2 示例2: 查询所有同学的总成绩,及同学的个人信息 2.3 示例3:查询所有同学的科目及各科成绩,及同学的个人信息 3. 外连接 3.1 情况一:两…...
【后端面经】微服务构架 (1-3) | 熔断:熔断-恢复-熔断-恢复,抖来抖去怎么办?
文章目录 一、前置知识1、什么是熔断?2、什么是限流?3、什么是降级?4、怎么判断微服务出现了问题?A、指标有哪些?B、阈值如何选择?C、超过阈值之后,要不要持续一段时间才触发熔断?5、服务恢复正常二、面试环节1、面试准备2、面试基本思路三、总结 在微服务构架中…...
对UITextField输入内容的各种限制-总结
使用代理方法来限制输入框中的字数,输入的符号,输入的数字大小等各种限制 限制输入字数 已经有小数点了,就不能继续输入小数点 不能输入以0为开头的内容 不能输入以.为开头的内容 小数点后只允许输入一位数 只能输入100以下的数值 **不能包括…...
【图论】二分图
二分图,即可以将图中的所有顶点分层两个点集,每个点集内部没有边 判定图为二分图的充要条件:有向连通图不含奇数环 1、染色法 可以解决二分图判断的问题 步骤与基本思路 遍历图中每一个点,若该点未被染色,则遍历该…...
数据结构——(一)绪论
👉数据元素整体思维导图 欢迎补充 一、基本概念❤️ 1.1基本术语⭐️ (1)数据 客观事务属性的数字、字符。 (2)数据元素 数据元素是数据的基本单位,一个数据元素可由若干数据项组成,数据项是…...
[ 华为云 ] 云计算中Region、VPC、AZ 是什么,他们又是什么关系,应该如何抉择
前几天看到一个问答帖,我回答完了才发现这个帖子居然是去年的也没人回复,其中他问了一些华为云的问题,对于其中的一些概念,这里来总结讲解一下,希望对学习华为云的小伙伴有所帮助。 文章目录 区域(Region&a…...
表单验证:输入的字符串以回车分隔并验证是否有
公司项目开发时,有一个需求,需要对输入的字符串按回车分隔并验证是否有重复项,效果如下: 表单代码: <el-form-item label"IP地址条目:" prop"ipAddressEntry"><el-inputtype&…...
智能财务分析-亿发财务报表管理系统,赋能中小企业财务数字化转型
对于许多中小企业来说,企业重要部门往往是财务和业务部门。业务负责创收,财务负责控制成本,降低税收风险。但因管理机制和公司运行制度的原因,中小企业往往面临着业务与财务割裂的问题,财务数据不清晰,无法…...
图为科技T501赋能工业机器人 革新传统工业流程
工业机器人已成为一个国家制造技术与科技水平的重要衡量标准,在2019年,中国工业机器人的组装量与产量均位居了全球首位。 当前,工业机器人被广泛用于电子、物流、化工等多个领域之中,是一种通过电子科技和机械关节制作出来的智能机…...
安全狗深度参与编写的《云原生安全配置基线规范》正式发布!
7月25日,由中国信息通信研究院、中国通信标准化协会主办的2023可信云大会在北京顺利开幕。 作为国内云原生安全领导厂商,安全狗受邀出席此次活动。 厦门服云信息科技有限公司(品牌名:安全狗)成立于2013年,…...
如何在3ds max中创建可用于真人场景的巨型机器人:第 2 部分
推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。选择机器人头部后,二次单击鼠标并选择隐藏未选中。机器人的其他部分 除了头部之外,将被隐藏。 打开 3ds Max 步骤 2 在人脸选择模式下&#x…...
Vue中TodoList案例_编辑
nextTick: MyItem.vue 加一个编辑按钮,input框:blur失去焦点时触发事件handleBlur,ref获取真实dom: <inputtype"text"v-show"todo.isEdit":value"todo.title"blur"handleBlur(todo,$even…...
什么是Redis?
什么是Redis 什么是Redis一、特性1. 支持多种数据结构2. 读/写速度快,性能高。3. 支持持久化。4. 实现高可用主从复制,主节点做数据副本。5. 实现分布式集群和高可用。 二、基本数据类型string(字符串)list(双向链表)set(集合)zse…...
深入浅出理解vue2/vue3响应式原理
一、简介 当谈论Vue 2和Vue 3的响应式原理时,我们主要关注的是其数据双向绑定的机制。数据双向绑定是指当数据发生变化时,视图会自动更新;反之,当视图发生变化时,数据也会相应地更新。这种特性让我们在前端开发中更加…...
ssh连接服务器配置
平常每次都是 ssh root111.111.111.111 然后再输入密码 很事麻烦 总结 首先本地生成密钥和公钥 ssh-keygen -t rsa -C "XXX" ~/.ssh id_rsa.pub 将公钥加入远程服务器中的authorized_keys中 用户可以手动编辑该文件,把公钥粘贴进去,也可…...
el-table 表头设置渐变色
<el-table :data"tableData" stripe><el-table-column prop"name" label"测试" align"left"></el-table-column><el-table-column prop"code" label"测试1" align"left"></…...
GB/T 25000.51解读——软件产品的易用性怎么测?
GB/T 25000.51-2016《软件产品质量要求和测试细则》是申请软件检测CNAS认可一定会用到的一部国家标准。在前面的文章中,我们为大家整体介绍了GB/T 25000.51-2016《软件产品质量要求和测试细则》国家标准的结构和所涵盖的内容以及对软件产品的八大质量特性中的功能性…...
408复试day2(7大排序算法)
数据结构 7大排序算法总结: 首先排序分为内排序和外排序: 内排序是指待排序的记录放置在内存,而外排序是指排序的过程中需要对内存进行访问。其中稳定的排序有“插冒归”,即插入排序、冒泡排序、归并排序。 1.冒泡排序 算法原理&a…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
