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. 从零开始入门 K8s | 手把手带你理解 etcd

    作者 | 曾凡松(逐灵) 阿里云容器平台高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 16 讲. 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 ...

  2. J.U.C剖析与解读2(AQS的由来)

    J.U.C剖析与解读2(AQS的由来) 前言 前面已经通过实现自定义ReentrantLock与自定义ReentrantReadWriteLock,展示了JDK是如何实现独占锁与共享锁的. 那么实际J ...

  3. 第八章 使用jQuery操作DOM

    DOM操作: jQuery中提供了一系列操作DOM强有力的方法,它们不仅简化了传统JavaScript操作DOM时繁冗的代码,更加解决了令开发者苦不堪言的跨平台浏览器的兼容. 它还让有页面元素真正动起 ...

  4. java笔记 -- 乐观锁与悲观锁

    何谓乐观锁和悲观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展.这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人. 悲观锁 - ...

  5. Day 07 字符串内置方法和爬虫基础3

    目录 异常处理 LeetCode使用之两数之和(示例) 字符串内置方法 爬虫基础3 selenium基本使用 selenium模拟百度登录 selenium爬取京东商品信息 异常处理 try: pri ...

  6. 【Web技术】400- 浅谈Shadow DOM

    编者按:本文作者:刘观宇,360 奇舞团高级前端工程师.技术经理,W3C CSS 工作组成员. 为什么会有Shadow DOM 你在实际的开发中很可能遇到过这样的需求:实现一个可以拖拽的滑块,以实现范 ...

  7. 【hibernate】重写物理表名和列明

    [hibernate]重写物理表名和列明 转载:https://www.cnblogs.com/yangchongxing/p/10357123.html 假设你的数据库命名有这样的需求,表都以 yc ...

  8. ubuntu16.04修改ssh的端口

    直接修改文件   /etc/ssh/sshd_config文件,

  9. mysql #1062 - Duplicate entry '2147483647' for key '*'

    一.当我看到这报错的时候,第一眼是认为存在重复记录,但是找了很久没找到2147483647 二.一条条的插入数据(有一批数据),直到找到报错的数据,发现是长度超了,定义了int插入的值却有11位长,哭 ...

  10. CCF-CSP题解 201709-4 通信网络

    dfs #include <bits/stdc++.h> const int maxn = 1000; const int maxm = 10000; using namespace st ...