Docker Compose 基本使用
Dockercompose v3官网文档: https://docs.docker.com/compose/compose-file/
Dockercompose中文: http://www.dockerinfo.net/document
借鉴: https://www.cnblogs.com/zhujingzhi/p/9786622.html#_label0
mode replicated
- mode: global 默认是服务器负载均衡自己分配
- mode: replicated
- replicas: 6 // 自己定义的台数
- deploy:
- mode: global
- deploy:
- mode: replicated
- replicas: 6
PLACEMENT
约束, 服务运行在哪个主机上面
|
node attribute |
matches |
example |
|
node.id |
Node ID |
node.id==2ivku8v2gvtg4 |
|
node.hostname |
Node hostname |
node.hostname!=node-2 |
|
node.role |
Node role |
node.role==manager |
|
node.labels |
user defined node labels |
node.labels.security==high |
|
engine.labels |
Docker Engine's labels |
engine.labels.operatingsystem==ubuntu 14.04 |
- placement:
- constraints:
- - node.role == manager
- - engine.labels.operatingsystem == ubuntu 14.04
RESOURCES
限制硬件信息
- resources:
- limits:
- cpus: '0.50'
- memory: 50M
- reservations:
- cpus: '0.25'
- memory: 20M
docker-compose安装
二进制安装
- curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
- docker-compose versio

PIP安装
- pip install docker-compose
- # 安装完需要做个软链接
- ln -s /usr/bin/docker-compose /usr/local/bin/
- docker-compose version
命令
- Compose 大部分命令的对象即可以是项目的本身,也可以是指定为项目中的服务或者容器
- 执行docker-compose [COMMAND] --help 或者docker-compose help [COMMAND]可以查看命令的帮助信息
- 具体的使用格式
- docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS]
- 参数选项
- -f,--file file指定模板文件,默认是docker-compose.yml模板文件,可以多次指定
- -p,--project-name name指定项目名称,默认使用所在目录名称作为项目名称
- --x-networking 使用Docker的后端可插拔网络特性
- --x-networking-driver driver指定网络的后端驱动,默认使用bridge
- --verbose 输入更多的调试信息
- -v,--version 输出版本信息
- Compose所支持的命令
- build Build or rebuild services (构建项目中的服务容器)
- bundle Generate a Docker bundle from the Compose file (从Compose文件生成分布式应用程序包)
- config Validate and view the Compose file (验证并查看Compose文件)
- create Create services (为服务创建容器)
- down Stop and remove containers, networks, images, and volumes (停止容器并删除由其创建的容器,网络,卷和图像up)
- events Receive real time events from containers (为项目中的每个容器流式传输容器事件)
- exec Execute a command in a running container (这相当于docker exec。使用此子命令,您可以在服务中运行任意命令。默认情况下,命令分配TTY,因此您可以使用命令docker-compose exec web sh来获取交互式提示。)
- help Get help on a command (获得一个命令的帮助)
- images List images ()
- kill Kill containers (通过发送SIGKILL信号来强制停止服务容器)
- logs View output from containers (查看服务容器的输出)
- pause Pause services (暂停一个容器)
- port Print the public port for a port binding (打印某个容器端口所映射的公共端口)
- ps List containers (列出项目中目前所有的容器)
- pull Pull service images (拉取服务依赖镜像)
- push Push service images (推送服务镜像)
- restart Restart services (重启项目中的服务)
- rm Remove stopped containers (删除所有停止状态的服务容器)
- run Run a one-off command (在指定服务上执行一个命令)
- scale Set number of containers for a service (设置指定服务执行的容器个数)
- start Start services (启动已存在的服务容器)
- stop Stop services (停止已存在的服务容器)
- top Display the running processes (显示容器正在运行的进程)
- unpause Unpause services (恢复处于暂停状态的容器)
- up Create and start containers (自动完成包括构建镜像、创建服务、启动服务并关联服务相关容器的一系列操作)
- version Show the Docker-Compose version information (输出版本)
这些命令的使用方法可以使用执行docker-compose [COMMAND] --help 或者docker-compose help [COMMAND]可以查看命令的帮助信息
因为太多的原因我这里就不写了,有时间我在把每个命令的使用方法补上吧
针对模板文件的使用才是重中之重,我在后面会对模板文件详细讲解
官方链接:https://docs.docker.com/compose/reference/build/
环境变量
- 环境变量可以用来配置 Compose 的行为,以DOCKER_开头的变量和用来配置 Docker 命令行客户端的使用一样。如果使用 boot2docker , $(boot2docker shellinit) 将会设置它们为正确的值
- COMPOSE_PROJECT_NAME 设置通过 Compose 启动的每一个容器前添加的项目名称,默认是当前工作目录的名字。
- COMPOSE_FILE 设置要使用的 docker-compose.yml 的路径。默认路径是当前工作目录。
- DOCKER_HOST 设置 Docker daemon 的地址。默认使用 unix:///var/run/docker.sock,与 Docker 客户端采用的默认值一致。
- DOCKER_TLS_VERIFY 如果设置不为空,则与 Docker daemon 交互通过 TLS 进行。
- DOCKER_CERT_PATH 配置 TLS 通信所需要的验证(ca.pem、cert.pem 和 key.pem)文件的路径,默认是 ~/.docker
在使用的时候在做解释和操作吧,因为一般不会改环境变量的东西,默认的就OK,做个简单的了解
官方链接:https://docs.docker.com/compose/reference/envvars/#compose_project_name
Docker Compose 基本使用的更多相关文章
- Docker compose学习笔记
一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...
- docker compose 笔记
https://www.youtube.com/watch?v=Uez88TWOECg 是基于这个视频做的笔记. Docker Compose: Compose is a tool for defin ...
- 利用docker compose启动gitlab及runner
添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...
- Docker Compose to CoreOS
taken from https://docs.docker.com/compose/install/ the only thing is that /usr is read only, but /o ...
- Docker Compose—简化复杂容器应用的利器
Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...
- .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...
- Docker Compose容器编排
Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...
- Docker(四):Docker 三剑客之 Docker Compose
前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...
- Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践
我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...
- Docker学习笔记 - Docker Compose 脚本命令
Docker Compose 配置文件包含 version.services.networks 三大部分,最关键的是 services 和 networks 两个部分, version: '2' se ...
随机推荐
- 小白学 Python 爬虫(13):urllib 基础使用(三)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Spring Boot2 系列教程(三十)Spring Boot 整合 Ehcache
用惯了 Redis ,很多人已经忘记了还有另一个缓存方案 Ehcache ,是的,在 Redis 一统江湖的时代,Ehcache 渐渐有点没落了,不过,我们还是有必要了解下 Ehcache ,在有的场 ...
- [ch04-05] 梯度下降的三种形式
系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 4.5 梯度下降的三种形式 我们比较一下目前我们用三种方 ...
- 还在用背单词App?使用Python开发英语单词自测工具,助你逆袭单词王!
学英语广告 最近也许是刚开学的原因,不管是公众号,还是刷抖音,导出都能看到关于学英语.背单词的广告. 不知道现在学生们背单词买的什么辅导材料.反正我们上学那会,<星火阅读>特别的火.记得当 ...
- 转:SpringBoot系列: 使用 flyway 管理数据库版本
Flyway 和 Liquibase 都是 Java 项目中常用的 DB migration 工具, 从使用简便性看,Flyway 比 Liquibase 更简单, 从 github 的 star 数 ...
- 严格次短路的求法-spfa
#include<iostream> #include<cstdio> #include<algorithm> #include<queue> #inc ...
- DOM中操作结点的属性_操作元素结点的样式
有俩种方式操作结点的属性. 首先我们需要先获取所要操作的结点元素: var uname=document.getElementById("uname"); var gan=unam ...
- Redis 命令执行过程(下)
在上一篇文章中<Redis 命令执行过程(上)>中,我们首先了解 Redis 命令执行的整体流程,然后细致分析了从 Redis 启动到建立 socket 连接,再到读取 socket 数据 ...
- zabbix系列-Grafana4.6.3+Zabbix 的安装部署
zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: zabb ...
- moment.js 默认使用服务器时间
在前端使用Date对象获取当前时间的时候,该时间是客户端的时间.但是该时间可以被用户修改,所以我们一般情况下并不想要这个时间.如果每一次获取时间的时候都请求一下服务器,那么将会对服务器造成不必要的压力 ...