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. Github Fork 缎带.html

      <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&g ...

  2. NIO-Channel

    目录 NIO-Channel 目录 前言 什么是Channel 通道类型 如何使用 ServerSocketChannel SocketChannel FileChannel 总结 相关文献 NIO- ...

  3. 19.JAVA-从文件中解析json、并写入Json文件(详解)

    1.json介绍 json与xml相比, 对数据的描述性比XML较差,但是数据体积小,传递速度更快. json数据的书写格式是"名称:值对",比如: "Name" ...

  4. Python的Requests库基本方法函数

    一.Requests 库的七个常用函数: 1. requests.request(method,url,**kwargs) :method:请求方式,对应get/put/post等七种 :拟获取页面的 ...

  5. idea建立项目关联到git仓库操作步骤

    eg:创建一个名为demo的git项目 创建git远程项目,命名为[/demo] 在[D:\workspace\gf]创建本地项目[demo] 在idea里选择[VCS]->[Checkout ...

  6. NRF5340首款双核处理器无线SoC

    nRF5340基于Nordic经过验证并在全球范围广泛采用的nRF51和nRF52系列多协议SoC而构建,同时引入了具有先进安全功能的全新灵活双处理器硬件架构,支持包括蓝牙5.1/低功耗蓝牙 (Blu ...

  7. 微信SDK接入报undefined symbol错误

    按照官方SDK接入 编译后报如下错误 是因为没有link libc++库导致的.

  8. iPhone唯一标识符

    为了区分iPhone设备,就要用到iPhone的唯一标识符唯一标识符包括:UDID(唯一设备标识符).identifierForVendor(供应商标识符).advertisingIdentifier ...

  9. React-Native——html/css

    做前端开发,熟悉了HTML+CSS+JS的开发模式,如果不看RN原理,直接用老一套的逻辑思维上手RN,可能会大跌眼镜.高效开发的前提,需要学习并理解RN的原理.本文主要记录内容是,关于RN开发的HTM ...

  10. 模电&数电知识整理(不定期更新)

    模电总复习之爱课堂题目概念整理 Chapter 1 1) 设室温情况下某二极管的反偏电压绝对值为1V,则当其反偏电压值减少100mV时,反向电流的变化是基本不发生变化. 2) 二极管发生击穿后,在击穿 ...