Docker | Docker技术基础梳理(九) - Docker Compose 浅析与 部署实例
时间:2022-06-23
本文章向大家介绍Docker | Docker技术基础梳理(九) - Docker Compose 浅析与 部署实例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
什么是Docker Compose
- Docker Compose是一个能一次性定义和管理多个Docker容器的工具。
- Compose中定义和启动的每一个容器都相当于一个服务(service)
- Compose中能定义和启动多个服务,且它们之间通常具有协同关系
- 我们通常使用YAML文件来配置我们应用程序的服务,并且使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务
如何安装Docker Compose
Windows与Mac: Docker for Mac与Docker for Windows自带docker-compose
Linux系统:
sudo curl -L https://github.com/docker/compose/releases/download/[版本号]/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
安装完成后使用 docker-compose version 查看版本
可以访问 https://github.com/docker/compose/releases 查看历史版本
安装后截图
Docker Compose文件配置与注意事项
Docker Compose file的配置项有非常多需要注意的点,如果一一赘述就相当于搬运官方文档了,这里标识几个经常使用的配置项,以供大家参考:
version:指定Docker Compose File版本号
services:定义多个服务并配置启动参数
volumes:声明或创建在多个服务中共同使用的数据卷对象
networks:定义在多个服务中共同使用的网络对象
configs:声明将在本服务中要使用的一些配置文件
secrets:声明将在本服务中要使用的一些秘钥、密码文件
x-***:自定义配置。主要用于复用相同的配置。
官方文档直通车:https://docs.docker.com/compose/compose-file/#service-configuration-reference
Docker Compose File 注意事项
Docker Compose File 的格式要求非常严格,一定需要注意的有:
- 配置项的缩进使用空格
- 注意配置项冒号后要添加空格
- 编写完Docker Compose File后可以使用docker-compose config 检查文件是否出错
Docker Compose 项目实例演示
Kafka运行环境搭建
这个项目的Docker File在昨天的文章中已经给大家展示过了,这里重新贴一次,让大家先有个大概印象。
使用Docker Compose 部署小型flask web 项目
- 首先准备好你的flask项目源码,并上传至云服务器上
- 将项目需要使用的类库导出 requirements.txt 备用
- 编写运行对应项目的Dockerfile,并构建出一个新的项目镜像(这步也可以不做,但是这里为了方便理清思路建议按步骤一步一步来)
- 按照项目需要将要启动的容器写成对应的服务
- 使用 docker-compose up -d运行服务
Docker Compose 与 Dockerfile 总结
关于Dockerfile与Docker Compose的两篇文章关于理论的描述比较少,大多都是实操的内容,如果你看到这里希望你能结合之前的文章动手实践一下,加深印象才能了解到关于Dockerfile和Dcoker compose 相关的难点。
- 模式识别---图像二值化
- 双边过滤算法
- C++对于大型图片的加载缩放尝试
- ijg库解码超大型jpeg图片
- JS基础(下)
- Go语言_并发篇
- AttributeError: 'int' object has no attribute 'log'
- makefile在编译的过程中出现“except class name”
- 调参过程中的参数 学习率,权重衰减,冲量(learning_rate , weight_decay , momentum)
- 【Golang语言社区】游戏编程--js开发实现简单贪吃蛇游戏(20行代码)
- mxnet框架样本,使用C++接口
- faster-rcnn中ROI_POOIING层的解读
- RNN的简单的推导演算公式(BPTT)
- Golang语言为结构体排序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 移动端开发的几点建议
- 数据结构题集(严书)图 常见习题代码
- PAT (Basic Level) Practice (中文)1036 跟奥巴马一起编程 (15 分)
- PAT (Advanced Level) Practice 1024 Palindromic Number (25 分)
- Flink 连接 hive 解决 java.net.UnknownHostException
- PAT (Advanced Level) Practice 1147 Heaps (30 分)
- Java自动化测试(app自动化环境搭建 31)
- PAT (Basic Level) Practice (中文)1038 统计同成绩学生 (20 分)
- 数据结构题集(严书)串 常见习题代码
- PAT (Basic Level) Practice (中文)1040 有几个PAT (25 分)
- 201909-4ccf计算机职业资格认证考试 第四题 推荐系统
- 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】
- PAT (Basic Level) Practice (中文)1042 字符统计 (20 分)
- Pytorch 中的 5 个非常有用的张量操作
- k-近邻算法实现数字识别