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 ...
随机推荐
- MySQL必知必会(数据分组,Group by和Having子句, Select子句的顺序)
SELECT vend_id, COUNT(*) AS num_prods FROM products #GROUP BY子句可以包含任意数目的列,多行NULL值将分为一组 GROUP BY vend ...
- 【重学Node.js 第3篇】mongodb以及mongoose的使用
mongodb以及mongoose的使用 本篇为这个系列的第三篇,想看更多可以直接去github的项目:https://github.com/hellozhangran/happy-egg-serve ...
- play-with-docker搭配ffsend完成文件上传及下载(解决从docker hub拉取镜像慢问题)
由于众所周知的原因,大家有的时候pull docker hub上的镜像是很困难的,下载到99%就这么不动了也是很正常的事情 这个时候以下步骤是100%可以解决问题的: 1.找一台国外的服务器安装doc ...
- MVC效验器
步骤一:导入依赖 <!--数据效验--> <dependency> <groupId>org.hibernate</groupId> <artif ...
- CF 1130A 1130B 1130C1129A1 1129A2 1129B(Round542A B C D1 D2 E)题解
A : Be Positive 题目地址:https://codeforces.com/problemset/problem/1130/A 题解:让你求是否满足一个d使得数列长为n的a数组的每个数除以 ...
- 初次在Vue项目使用TypeScript,需要做什么
前言 总所周知,Vue新版本3.0 使用 TypeScript 开发,让本来就很火的 TypeScript 受到更多人的关注.虽然 TypeScript 在近几年才火,但其实它诞生于2012年10月, ...
- FPGA+VGA+OV7725 视频图像FPGA开发板 图像采集板CP511A使用
- Postman 关联接口测试(带有token鉴权)
Postman 关联接口测试(带有token鉴权) 一.登陆接口 创建一个request请求 在Tests中添加JavaScript代码,用来获取鉴权 pm.test("V2", ...
- 【Canvas】311- 解决 canvas 在高清屏中绘制模糊的问题
点击上方"前端自习课"关注,学习起来~ 一.问题分析 使用 canvas 绘制图片或者是文字在 Retina 屏中会非常模糊.如图: 因为 canvas 不是矢量图,而是像图片一样 ...
- SpringSpringBoot上传文件到七牛云
准备工作 maven pom.xml添加七牛云的sdk依赖 <dependency> <groupId>com.qiniu</groupId> <artifa ...