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

  1. mode: global   默认是服务器负载均衡自己分配   
  2. mode: replicated    
  3. replicas: 6   // 自己定义的台数   
  4. deploy:  
  5.     mode: global  
  6.        
     
  7. deploy:  
  8.     mode: replicated  
  9.     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

 

  1. placement:  
  2.       constraints:  
  3.         - node.role == manager  
  4.         - engine.labels.operatingsystem == ubuntu 14.04   

 
 

RESOURCES

限制硬件信息

  1. resources:  
  2.       limits:  
  3.         cpus: '0.50'  
  4.         memory: 50M  
  5.       reservations:  
  6.         cpus: '0.25'  
  7.         memory: 20M   

 

docker-compose安装

二进制安装

  1. 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  
  2. chmod +x /usr/local/bin/docker-compose  
  3. docker-compose versio  

 

PIP安装

  1. pip install docker-compose  
  2. # 安装完需要做个软链接  
  3. ln -s /usr/bin/docker-compose /usr/local/bin/  
  4. docker-compose version  

 

命令

  1. Compose 大部分命令的对象即可以是项目的本身,也可以是指定为项目中的服务或者容器  
  2. 执行docker-compose [COMMAND] --help 或者docker-compose help [COMMAND]可以查看命令的帮助信息  
  3. 具体的使用格式  
  4. docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS]  
  5. 参数选项  
  6. -f,--file file指定模板文件,默认是docker-compose.yml模板文件,可以多次指定  
  7. -p,--project-name name指定项目名称,默认使用所在目录名称作为项目名称  
  8. --x-networking 使用Docker的后端可插拔网络特性  
  9. --x-networking-driver driver指定网络的后端驱动,默认使用bridge  
  10. --verbose 输入更多的调试信息  
  11. -v,--version 输出版本信息 

 

  1. Compose所支持的命令  
  2. build              Build or rebuild services (构建项目中的服务容器)  
  3. bundle             Generate a Docker bundle from the Compose file (从Compose文件生成分布式应用程序包)  
  4. config             Validate and view the Compose file (验证并查看Compose文件)  
  5. create             Create services (为服务创建容器)  
  6. down               Stop and remove containers, networks, images, and volumes (停止容器并删除由其创建的容器,网络,卷和图像up)  
  7. events             Receive real time events from containers (为项目中的每个容器流式传输容器事件)  
  8. exec               Execute a command in a running container (这相当于docker exec。使用此子命令,您可以在服务中运行任意命令。默认情况下,命令分配TTY,因此您可以使用命令docker-compose exec web sh来获取交互式提示。)  
  9. help               Get help on a command (获得一个命令的帮助)  
  10. images             List images ()  
  11. kill               Kill containers (通过发送SIGKILL信号来强制停止服务容器)  
  12. logs               View output from containers (查看服务容器的输出)  
  13. pause              Pause services (暂停一个容器)  
  14. port               Print the public port for a port binding (打印某个容器端口所映射的公共端口)  
  15. ps                 List containers (列出项目中目前所有的容器)  
  16. pull               Pull service images (拉取服务依赖镜像)  
  17. push               Push service images (推送服务镜像)  
  18. restart            Restart services (重启项目中的服务)  
  19. rm                 Remove stopped containers (删除所有停止状态的服务容器)  
  20. run                Run a one-off command (在指定服务上执行一个命令)  
  21. scale              Set number of containers for a service (设置指定服务执行的容器个数)  
  22. start              Start services (启动已存在的服务容器)  
  23. stop               Stop services (停止已存在的服务容器)  
  24. top                Display the running processes (显示容器正在运行的进程)  
  25. unpause            Unpause services (恢复处于暂停状态的容器)  
  26. up                 Create and start containers (自动完成包括构建镜像、创建服务、启动服务并关联服务相关容器的一系列操作)  
  27. version            Show the Docker-Compose version information (输出版本)  

这些命令的使用方法可以使用执行docker-compose [COMMAND] --help 或者docker-compose help [COMMAND]可以查看命令的帮助信息

因为太多的原因我这里就不写了,有时间我在把每个命令的使用方法补上吧

针对模板文件的使用才是重中之重,我在后面会对模板文件详细讲解

官方链接:https://docs.docker.com/compose/reference/build/

 

环境变量

  1. 环境变量可以用来配置 Compose 的行为,以DOCKER_开头的变量和用来配置 Docker 命令行客户端的使用一样。如果使用 boot2docker , $(boot2docker shellinit) 将会设置它们为正确的值  
  2.    
     
  3. COMPOSE_PROJECT_NAME    设置通过 Compose 启动的每一个容器前添加的项目名称,默认是当前工作目录的名字。  
  4.    
     
  5. COMPOSE_FILE            设置要使用的 docker-compose.yml 的路径。默认路径是当前工作目录。  
  6.    
     
  7. DOCKER_HOST             设置 Docker daemon 的地址。默认使用 unix:///var/run/docker.sock,与 Docker 客户端采用的默认值一致。  
  8.    
     
  9. DOCKER_TLS_VERIFY       如果设置不为空,则与 Docker daemon 交互通过 TLS 进行。  
  10.    
     
  11. DOCKER_CERT_PATH        配置 TLS 通信所需要的验证(ca.pem、cert.pem 和 key.pem)文件的路径,默认是 ~/.docker 

在使用的时候在做解释和操作吧,因为一般不会改环境变量的东西,默认的就OK,做个简单的了解

官方链接:https://docs.docker.com/compose/reference/envvars/#compose_project_name

Docker Compose 基本使用的更多相关文章

  1. Docker compose学习笔记

    一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...

  2. docker compose 笔记

    https://www.youtube.com/watch?v=Uez88TWOECg 是基于这个视频做的笔记. Docker Compose: Compose is a tool for defin ...

  3. 利用docker compose启动gitlab及runner

    添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...

  4. Docker Compose to CoreOS

    taken from https://docs.docker.com/compose/install/ the only thing is that /usr is read only, but /o ...

  5. Docker Compose—简化复杂容器应用的利器

    Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...

  6. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  7. Docker Compose容器编排

    Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...

  8. Docker(四):Docker 三剑客之 Docker Compose

    前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...

  9. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  10. Docker学习笔记 - Docker Compose 脚本命令

    Docker Compose 配置文件包含 version.services.networks 三大部分,最关键的是 services 和 networks 两个部分, version: '2' se ...

随机推荐

  1. MySQL必知必会(数据分组,Group by和Having子句, Select子句的顺序)

    SELECT vend_id, COUNT(*) AS num_prods FROM products #GROUP BY子句可以包含任意数目的列,多行NULL值将分为一组 GROUP BY vend ...

  2. 【重学Node.js 第3篇】mongodb以及mongoose的使用

    mongodb以及mongoose的使用 本篇为这个系列的第三篇,想看更多可以直接去github的项目:https://github.com/hellozhangran/happy-egg-serve ...

  3. play-with-docker搭配ffsend完成文件上传及下载(解决从docker hub拉取镜像慢问题)

    由于众所周知的原因,大家有的时候pull docker hub上的镜像是很困难的,下载到99%就这么不动了也是很正常的事情 这个时候以下步骤是100%可以解决问题的: 1.找一台国外的服务器安装doc ...

  4. MVC效验器

    步骤一:导入依赖 <!--数据效验--> <dependency> <groupId>org.hibernate</groupId> <artif ...

  5. 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数组的每个数除以 ...

  6. 初次在Vue项目使用TypeScript,需要做什么

    前言 总所周知,Vue新版本3.0 使用 TypeScript 开发,让本来就很火的 TypeScript 受到更多人的关注.虽然 TypeScript 在近几年才火,但其实它诞生于2012年10月, ...

  7. FPGA+VGA+OV7725 视频图像FPGA开发板 图像采集板CP511A使用

     

  8. Postman 关联接口测试(带有token鉴权)

    Postman 关联接口测试(带有token鉴权) 一.登陆接口 创建一个request请求 在Tests中添加JavaScript代码,用来获取鉴权 pm.test("V2", ...

  9. 【Canvas】311- 解决 canvas 在高清屏中绘制模糊的问题

    点击上方"前端自习课"关注,学习起来~ 一.问题分析 使用 canvas 绘制图片或者是文字在 Retina 屏中会非常模糊.如图: 因为 canvas 不是矢量图,而是像图片一样 ...

  10. SpringSpringBoot上传文件到七牛云

    准备工作 maven pom.xml添加七牛云的sdk依赖 <dependency> <groupId>com.qiniu</groupId> <artifa ...