Docker 使用Docker-Compose编排容器
简介:
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
Docker与Compose的兼容性:
compose文件格式版本 docker版本
3.7 18.06.+
3.6 18.02.+
3.5 17.12.+
3.4 17.09.+
3.3 17.06.+
3.2 17.04.+
3.1 1.13.+
3.0 1.13.+
2.3 17.06.+
2.2 1.13.+
2.1 1.12.+
2.0 1.10.+
1.0 1.9..+
安装:
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
查看:
[root@localhost bin]# docker-compose --version
docker-compose version 1.22., build f46880fe
compose命令选项:
-f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml ,可以多次指定。
-p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。
--x-networking 使用 Docker 的可拔插网络后端特性
--x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge
--verbose 输出更多调试信息。
-v, --version 打印版本并退出。
compose命令:
build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器
Code:
wordpress.yml
version: ''
services:
web:
image: wordpress:
environment:
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_AUTH_KEY=changeme
- WORDPRESS_SECURE_AUTH_KEY=changeme
- WORDPRESS_LOGGED_IN_KEY=changeme
- WORDPRESS_NONCE_KEY=changeme
- WORDPRESS_AUTH_SALT=changeme
- WORDPRESS_SECURE_AUTH_SALT=changeme
- WORDPRESS_LOGGED_IN_SALT=changeme
- WORDPRESS_NONCE_SALT=changeme
- WORDPRESS_NONCE_AA=changeme
ports:
- :
depends_on:
- mysql
deploy:
replicas:
restart_policy:
condition: on-failure
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
deploy:
restart_policy:
condition: on-failure
wordpress.yml 定义了包含两个服务的Wordpress应用
web服务:部署3个实例的wordpress:4容器
mysql服务:部署1个实例的mysql:5.7容器
注意:
restart_policy:定义服务的重启条件 (v1/v2中restart指令不再支持)
deploy与depends_on不要搞混,一个配置,一个依赖。
命令:
使用docker-compose构建并运行应用:
# 若是要后台运行: $ docker-compose up -d
$ docker-compose up # 若不使用默认的docker-compose.yml 文件名:
$ docker-compose -f server.yml up -d
停止删除容器:
#必须跟docker-compose.yml的文件路径中执行命令
docker-compose stop
#必须跟docker-compose.yml文件路径中执行命令
docker-compose rm
设置服务容器数量:
docker-compose scale mysql=
总结:
不要把 docker 当做数据容器来使用,数据一定要用 volumes 放在容器外面
不要把 docker-compose 文件暴露给别人, 因为上面有你的服务器信息
多用 docker-compose 的命令去操作, 不要用 docker 手动命令&docker-compose 去同时操作
写一个脚本类的东西,自动备份docker 映射出来的数据。
不要把所有服务都放在一个 docker 容器里面
参考:
https://docs.docker.com/compose/install/#install-compose
http://www.widuu.com/docker/compose/install.html
https://blog.csdn.net/pushiqiang/article/details/78682323
https://www.jianshu.com/p/2217cfed29d7
https://blog.csdn.net/pushiqiang/article/details/78682323
Docker 使用Docker-Compose编排容器的更多相关文章
- Docker(二十六)-Docker Compose编排容器
1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...
- Docker系列之(五):使用Docker Compose编排容器
1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...
- 使用docker compose编排容器
一.安装docker compose 二进制包安装 1.安装 Docker Compose 从 官方 GitHub Release 处直接下载编译好的二进制文件即可 # curl -L https:/ ...
- 物联网架构成长之路(24)-Docker练习之Compose容器编排
0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compo ...
- 使用Docker compose编排Laravel应用
前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环 ...
- docker compose 编排
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...
- Docker深入浅出系列 | Docker Compose多容器实战
目录 前期准备 Docker Compose是什么 为什么要用Docker Compose Docker Compose使用场景 Docker Compose安装 Compose Yaml文件结构 C ...
- 使用Docker Compose编排Spring Cloud微服务
文章目录 微服务构建实例 简化Compose的编写 编排高可用的Eureka Server 编排高可用Spring Cloud微服务集群及动态伸缩 微服务项目名称 项目微服务中的角色 microser ...
- Docker应用:Docker-compose(容器编排)
阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) 前言: 昨天完成了Docker入门示例(Docker应用:Hello World),示 ...
- Docker学习笔记之使用 Docker Compose 管理容器
0x00 概述 通过之前的介绍,我们已经基本掌握了构建.运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能 ...
随机推荐
- ModelSim仿真教程
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file-> ...
- verdi bin工具
verdi安装目录下会有很多小的工具: 1)波形类型转换类:fsdb2saif,fsdb2vcd, log2fsdb(只能增加某些周期性信号,从log txt直接产生fsdb波形,适合于siloti的 ...
- <1>Cocos Creator安装和启动
学习之间需要了解JavaScritp基本语法和面向对象,详情参考https://blog.csdn.net/jadeshu/article/category/7476938 1.下载Cocos Cre ...
- Rpgmakermv(15) PH任务插件
插件介绍 一个用来简单显示任务阶段的任务书 使用方法 插件安装 下载js文件放置到游戏目录/plugins目录下.打开插件管理器,选择PH_QuestBook.js并开启. 插件参数 Show in ...
- 删除(unfork)github中某个库(repository)
1.头像->your profile 2.点击某个想要删除的库,出现界面: 3.点击setting,鼠标滚动页面至末尾,出现页面: 4.点击delete this repository: OK!
- Problem(莫比乌斯反演)
我不是传送门 题意 : 中文题目不解释 求gcd(x,y) = k (a<=x<=b, c<=y<=d); 根据gcd(ka,kb) = k*gcd(a,b), 可将问题转化为 ...
- GGTalk即时通讯系统(支持广域网)终于有移动端了!(技术原理、实现、源码)
首先要感谢大家一直以来对于GGTalk即时通讯系统的关注和支持!GGTalk即时通讯系统的不断完善与大家的支持分不开! 从2013年最初的GG1.0开放源码以来,到后来陆续增加了网盘功能.远程协助功能 ...
- NSOperation、NSOperationQueue(III)
NSOperation.NSOperationQueue 常用属性和方法归纳 NSOperation 常用属性和方法 a. 取消操作方法 //可取消操作,实质是标记 isCancelled 状态. - ...
- Spark学习之路 (六)Spark Transformation和Action
Transformation算子 基本的初始化 java static SparkConf conf = null; static JavaSparkContext sc = null; static ...
- FileInputStream FileOutputStream
FileInputStream is a stream to grab the information from files.Combined with FileOutputStream, we ca ...