compose有两个重要的概念:

服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例

项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义

compose默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理

安装

pip安装,下载编译好的二进制文件,直接运行在docker容器中三种方案:

pip安装:

apt-get install python-pip -y

pip install -U docker-compose

安装后,可以添加bash补全命令:

curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

卸载:

pip uninstall docker-compose

Compose命令说明

大多数Compose命令都是运行于一个或多个服务的,如果服务没有指定,该命令将会作用到项目,即应用到所有服务

build
Usage: build [options] [SERVICE...] Options:
--force-rm Always remove intermediate containers.
--no-cache Do not use cache when building the image.
--pull Always attempt to pull a newer version of the image.
当修改dockerfile或者docker-compose时,运行docker-compose build 重建镜像。 生成镜像后,可使用docker-compose up启动
kill
通过发送SIGKILL的信号强制停止运行的容器,这个信号可以选择性的通过,比如:
docker-compose kill -s SIGKINT
logs
Usage: logs [options] [SERVICE...] Options:
--no-color 单色输出,不显示其他颜.
-f, --follow 跟踪日志输出,就是可以实时查看日志
-t, --timestamps 显示时间戳
--tail 从日志的结尾显示,--tail=
显示日志输出.
pause
Usage: pause [SERVICE...]
暂停容器服务. docker-compose pause 暂停所有服务. docker-compose pause web,之后暂停web服务的容器。
port
Usage: port [options] SERVICE PRIVATE_PORT Options:
--protocol=proto tcp or udp [default: tcp]
--index=index index of the container if there are multiple
instances of a service [default: ]
输出服务的共有端口.
# docker-compose port web -- 8080为容器内部端口
0.0.0.0:
ps
Usage: ps [options] [SERVICE...] Options:
-q 只显示ID
显示容器. 默认显示name、command、state、ports
pull
Usage: pull [options] [SERVICE...] Options:
--ignore-pull-failures 忽略pull失败的镜像,继续pull其他镜像.
pull compose文件中所指明的镜像.
restart
Usage: restart [options] [SERVICE...] Options:
-t, --timeout TIMEOUT Specify a shutdown timeout in seconds. (default: )
Restarts services.
rm
Usage: rm [options] [SERVICE...] Options:
-f, --force Don't ask to confirm removal
-v 期初加载到容器的任何匿名卷
-a, --all Also remove one-off containers created by
docker-compose run
Removes stopped service containers. 如果服务在运行,需要先docker-compose stop 停止容器
run
Usage: run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...] Options:
-d 后台运行,输出容器名.
-e KEY=VAL 设置环境变量参数,可以使用多次
-u, --user="" 指定运行的用户
--no-deps 不启动link服务,只启动run的服务.
--rm 运行后删除容器,后台运行模式除外(-d).
-p, --publish=[] 开放端口
--service-ports compose文件中配置什么端口,就映射什么端口.
-T 禁用TTY.
-w, --workdir="" 设置工作目录
启动web服务器,并执行bash命令. $ docker-compose run web bash
根据compose配置文件制定的端口,映射到主机:
$ docker-compose run --service-ports web python manage.py shell
指定端口映射到主机:
$ docker-compose run --publish : -p : -p 127.0.0.1:: web python manage.py shell
scale
Usage: scale [SERVICE=NUM...]
设置服务的个数.
$ docker-compose scale web= worker=
start
Usage: start [SERVICE...]
启动服务.
stop
Usage: stop [options] [SERVICE...] Options:
-t, --timeout TIMEOUT 关闭超时时间 (default: ).
停止容器.
unpause
Usage: unpause [SERVICE...]
恢复容器服务. docker-compose unpause 恢复所有服务. docker-compose unpause web,之后恢复web服务的容器。
up
Usage: up [options] [SERVICE...] Options:
-d 后台运行,输出容器的名字.
Incompatible with --abort-on-container-exit.
--no-color 单色输出.
--no-deps 不启动link服务.
--force-recreate 强制重新创建compose服务,即使没有任何改变。重新创建后启动容器
Incompatible with --no-recreate.
--no-recreate 如果容器已经存在,不重新创建.
Incompatible with --force-recreate.
--no-build 不创建重启,即使镜像不存在.
--build 重新创建镜像,然后生成容器.
--abort-on-container-exit 任何容器停止,自动停止所有容器.
Incompatible with -d.
-t, --timeout TIMEOUT 超时时间. (default: )
--remove-orphans 移除compose文件中未定义服务的容器
改命令十分强大,它将尝试自动完成包括镜像创建,(重新)

docker三剑客之一docker compose的更多相关文章

  1. Docker 三剑客之 Docker Swarm

    上一篇:Docker 三剑客之 Docker Compose 阅读目录: Docker Machine 创建 Docker 主机 Docker Swarm 配置集群节点 Docker Service ...

  2. Docker(五):Docker 三剑客之 Docker Machine

    上篇文章Docker(四):Docker 三剑客之 Docker Compose介绍了 Docker Compose,这篇文章我们来了解 Docker Machine . Docker Machine ...

  3. Docker三剑客之Docker Swarm

    一.什么是Docker Swarm Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/s ...

  4. Docker 三剑客之 Docker Swarm(基于 overlay 组网通信)

    相关文章:Docker 三剑客之 Docker Swarm 这一篇主要是对 Docker Swarm 的完善,增加基于 overlay 组网通信,以便 Docker 容器可以跨主机访问. 不同主机间的 ...

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

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

  6. Docker三剑客之Docker Compose

    一.什么是Docker Compose Compose 项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码在https://github.com/docker/comp ...

  7. docker——三剑客之Docker swarm

    Docker Swarm是Docker官方的三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案.使用它,用户可以将多个Docker主机封装为单个大型的虚拟D ...

  8. Docker(六):Docker 三剑客之 Docker Swarm

    实践中会发现,生产环境中使用单个 Docker 节点是远远不够的,搭建 Docker 集群势在必行.然而,面对 Kubernetes, Mesos 以及 Swarm 等众多容器集群系统,我们该如何选择 ...

  9. docker——三剑客之Docker Machine

    Docker Machine是Docker官方三剑客项目之一,负责使用Docker的第一步,在多种平台上快速安装Docker环境.它支持多种平台,让用户在很短时间内搭建一套Docker主机集群. Ma ...

  10. Docker三剑客之Docker Machine

    一.什么是Docker Machine Docker Machine 是Docker官方编排项目之一,使用go语言编写的,使用不同引擎在多种平台上快速的安装Docker环境,开源地址:https:// ...

随机推荐

  1. tomcat 代码集

    Tomcat类是整个tomcat的起点,负责加载所有的配置信息以及把配置信息解析转换成tomcat组件对象. Context addWebapp(String contextPath, String ...

  2. 2016/07/07 PHP的线程安全与非线程安全版本的区别

    Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...

  3. gradle找不到java目录里的mybatis的xml文件

    因为idea只编译java,gradle也默认只编译java,所以xml被忽略了. idea目前不知道如何修改,gradle修改时,需要把xml文件加上,不过gradle修改了只对gradle起作用, ...

  4. 杭电 2553 N皇后问题

    http://acm.hdu.edu.cn/showproblem.php?pid=2553 N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  5. vim实现代码缩进和可视区域的字符串替换

    今天2014年9月12号,实现了vim下的代码自动缩进和替换可视区域的字符串,之前一直在用vim这个强大的编辑器,它的强大只有用了的人才知道,现在把这两个很强大的功能展示出来,有个这两个功能,即使你写 ...

  6. 对于iPhone描述文件的签名认证

    1.购买SSL证书验证(跟https认证一样) 2.iphone 签名.mobileconfig文件 company.mobileconfig 未签名的mobileconfig文件 server.cr ...

  7. 怎样使用alsa API

    翻译文章的链接: http://equalarea.com/paul/alsa-audio.html 关于怎么使用ALSA API教程 这份文档帮助对ALSA API使用入门.不是一个完整的ALSA ...

  8. LightOJ - 1104 Birthday Paradox —— 概率

    题目链接:https://vjudge.net/problem/LightOJ-1104 1104 - Birthday Paradox    PDF (English) Statistics For ...

  9. UVA11892 ENimEN —— 博弈

    题目链接:https://vjudge.net/problem/UVA-11892 题意: 两人玩游戏,有n堆石子,每堆有ai块石子,两人轮流取,要求一次只能选择一堆石子取任意块.最后取完的获胜. 题 ...

  10. 让ansbile和docker愉快的在一起

    引自: http://cloud.51cto.com/art/201510/494328.htm