Docker-compose
目录
简介:
官方介绍
批量容器编排
Docker-Compose up 1000个服务,也可以一键启动
Compose重要概念
安装Docker Compose
升级Docker Compose
重启的执行命令
简介:
我们之前操作Docker的过程是:DockerFile build run进行手动操作,单个容器,如果假设我们1000个微服务,并行微服务之间还存在依赖关系,这个时候,我们就可以使用Docker Compose来轻易高效的管理容器,定义运行多个容器
官方介绍
定义、运行多个容器
Yamlfile 配置环境
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,可以使用Yaml文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。要了解有关Compose的所有特性的更多消息,请参阅特性列表
Compose可以在所有环境中工作生产、阶段、开发、测试,以及CI工作流。使用Compose基本有三个步骤
- 使用Dockerfile定义你的应用程序的环境,这样就可以在任何地方复制
- 在Docker-compose中定义组成应用程序的服务。这样他们就可以在一个独立的环境中一起运行
- 运行Docker-compose up和Compose启动运行整个应用程序
批量容器编排
Compose是Docker官方开源项目,需要安装
Dockerfile让程序在任何地方运行,Web程序。Redis、MySql、Nginx 多个容器
Compose的Yaml文件如下
version: '2.0'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
Docker-Compose up 1000个服务,也可以一键启动
Compose重要概念
- 服务Service 容器,应用(Web,Redis,Mysql)
- 项目Project,就是一组关联的容器
常见的Docker Compose脚本
安装git命令: yum install -y git
git clone docker-compose: docker-compose集成环境系列
cd docker-compose/Linux
举例:
version: '3'
services:
mysql:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:5.7 # 原镜像`mysql:5.7`
container_name: mysql_3306 # 容器名为'mysql_3306'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./mysql5.7/my.cnf:/etc/mysql/my.cnf"
- "./mysql5.7/data:/var/lib/mysql"
# - "./mysql5.7/conf.d:/etc/mysql/conf.d"
- "./mysql5.7/log/mysql/error.log:/var/log/mysql/error.log"
- "./mysql5.7/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d" # 可执行初始化sql脚本的目录 -- tips:`/var/lib/mysql`目录下无数据的时候才会执行(即第一次启动的时候才会执行)
environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai
LANG: en_US.UTF-8
MYSQL_ROOT_PASSWORD: root # 设置root用户密码
MYSQL_DATABASE: demo # 初始化的数据库名称
ports: # 映射端口
- "3306:3306"
安装Docker Compose
官方文档:Overview | Docker Documentation
下载
- 首先需要先安装一下Docker
- 运行此命令下载Docker Compose的当前稳定版本$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -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
升级Docker Compose
如果从Compose1.2或更早版本升级,请在升级Compose后移除现有容器。这是因为从1.3版本之后,Compose使用Docker标签来跟踪容器,并且需要重新创建容器以添加标签。
如果Compose检查到创建时没有标签的容器,它会拒绝运行,这样您就不会得到两组。如果想继续使用现有容器,可以在使用Compose1.5使用以下命令迁移
docker-compose migrate-to-labels
或者,如果不担心保留,可以删除,compose知识创建新的
docker container rm -f -v myapp_web_l myapp_....
重启的执行命令
sudo /usr/local/bin/docker-compose down
sudo /usr/local/bin/docker-compose up -d
Docker-compose相关推荐
- Docker compose 容器编排
1. 概述 问题:如果要使用 Docker 运行 LNMP 架构,那么 Nginx.MySQL.PHP. Linux三个服务运行在一个容器里,还是运行在多个容器里呢? 答案是都可以. 你可以分别放在三 ...
- Docker核心技术之Docker Compose
一.Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的 ...
- Docker Compose 1.18.0 之服务编排详解
一个使用Docker容器的应用,通常由多个容器组成.使用Docker Compose,不再需要使用shell脚本来启动容器.在配置文件中,所有的容器通过services来定义,然后使用docker-c ...
- Centos7 Docker Compose部署mysql5.7
1 . 创建docker-compose.yml文件 version: '3' services:mysql:restart: alwaysimage: mysql:5.7.22container_n ...
- Docker Compose安装
一 . Docker Compose概述 Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后 , ...
- Docker(八):Docker Compose
Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...
- Docker compose多容器管理
前言 Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr). Docker Compose 运行的目录下的所有文件(doc ...
- Docker Compose—简化复杂容器应用的利器
Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...
- Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践
我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...
- Windows 系统安装Docker Compose 步骤
参考 Docker Compose official 官方安装指南: https://docs.docker.com/compose/install/ 实际上到目前为止还不能直接在Windows上安装 ...
最新文章
- PowerDesigner与Rose详解教程
- 《你的灯亮着吗》阅读笔记1
- java正则表达式及api_Java魔法堂:深入正则表达式API
- python3 发送邮件
- luogu4074-[WC2013]糖果公园
- 【Python】如何学好Python
- OCA第4部分中的Java难题
- C++为什么空格无法输出_OOP 面向对象编程:由 C 到 C++
- 一些上流的CSS3图片样式
- 利用RobHess源码实现SIFT算法及RANSAC去错的图像特征提取匹配及去除错匹配
- 鼓励自己成为一名合格程序设计师
- 深度评测阿里云、百度云、腾讯云和华为云
- MySQL中将查询所得结果集的某一字段拼接成字符串
- 使用NAT网关挂载本地物理机
- 《统计学习方法》读书笔记
- 文本生成系列之预训练模型
- SQL Server 2005系列教学(12) 导入导出服务
- 现代信号处理——参数估计理论(2)——估计子、贝叶斯估计、最大似然估计
- 解决从PDF复制到Word中的英文字母变成宋体格式的问题
- 专业破解各种版本的IDEA