码迷,mamicode.com
首页 > 其他好文 > 详细

docker_基础_5

时间:2018-04-16 18:18:56      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:compose

接上篇

接上篇 21章

22、docker compose

??Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack 中的 Heat 十分类似,其代码目前在 https://github.com/docker/compose 上开源。
??Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainerDocker applications)」,其前身是开源项目 Fig。
??我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
??Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Compose 中有两个重要的概念:

  • 服务 ( service ):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 ( project ):由一组关联的应用容器组成的一个完整业务单元,在 dockercompose.yml 文件中定义。
    ??Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

22.1、安装

22.1.1. 二进制包安装

curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
下载不下来就 直接下载源包 https://github.com/docker/compose/releases
Host# mv docker-compose-Linux-x86_64 docker-compose
Host# chmod +x !$
Host# mv docker-compose /usr/bin/
Host# docker-compose version
    docker-compose version 1.21.0, build 5920eb0
    docker-py version: 3.2.1
    CPython version: 3.6.5
    OpenSSL version: OpenSSL 1.0.1t  3 May 2016Host# mv docker-compose-Linux-x86_64 docker-compose
Host# chmod +x !$
Host# mv docker-compose /usr/bin/
Host# docker-compose version
    docker-compose version 1.21.0, build 5920eb0
    docker-py version: 3.2.1
    CPython version: 3.6.5
    OpenSSL version: OpenSSL 1.0.1t  3 May 2016

22.1.2、pip安装

??x86_64 架构的 Linux 建议按照上边的方法下载二进制包进行安装,如果您计算机的架构是 ARM (例如,树莓派),再使用 pip 安装

pip install -U docker-compose

22.1.3、卸载

??直接删除/usr/bin/docker-compose文件就行

22.2、帮助

[root@dockers ~]# docker-compose -h
Define and run multi-container applications with Docker.

-f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml ,可以
多次指定。
-p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。
--x-networking 使用 Docker 的可拔插网络后端特性
--x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge
--verbose 输出更多调试信息。
-v, --version 打印版本并退出

22.3、docker-compose 运行命令

Commands:
  build              构建项目中的服务容器
  config             Validate and view the Compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  images             List images
  kill               通过SIGKILL信号来强制停止服务容器
          如 docker-compose kill  -s SIGINT
  logs               View output from containers
  pause              Pause services
  port               打印绑定的端口
  ps                 List containers
           如 docker-compose ps 列出所有    -q 只打印容器ID
  pull               拉取服务依赖的镜像
         如 docker-compose pull       
                  --ignore-pull-failures 忽略拉取镜像过程中的错误
  push               Push service images
  restart            Restart services
  rm                 删除所有已经停止的容器
  run                在指定服务器上执行一个命令
         如 运行一个容器  docker-compose run centos ping 1.1.1.1
  scale              设置容器启动的个数
  start              Start services
  stop               Stop services
  top                查看各个服务容器内运行的进程。
  unpause            恢复处于暂停状态中的服务
  up                 创建并启动容器
    该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。
链接的服务都将会被自动启动,除非已经处于运行状态。
可以说,大部分时候都可以直接通过该命令来启动一个项目。
默认情况, docker-compose up 启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试。
当通过 Ctrl-C 停止命令时,所有容器将会停止。
如果使用 docker-compose up -d ,将会在后台启动并运行所有的容器。一般推荐生产环境下使用该选项
                -d 在后台运行服务容器
                --no-color 不使用颜色来区分不同的服务的控制台输出。
                --no-deps 不启动服务所链接的容器。
                --force-recreate 强制重新创建容器,不能与 --no-recreate 同时使用。
                --no-recreate 如果容器已经存在了,则不重新创建,不能与 --forcerecreate 同时使用。
                --no-build 不自动构建缺失的服务镜像。
                -t, --timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)
  version            Show the Docker-Compose version information

22.4、compose模板文件

默认的模板文件名称为 docker-compose.yml ,格式为 YAML 格式。
前面一定用tab键补,子级一定是空格

version: "3"    版本信息 
services:        所有的服务应当放在这下面
  webapp:      服务的名称
    image: examples/web    镜像名称
    ports:         端口
      - "80:80"
    volumes:    容器卷
      - "/data"
build   指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。
                    也可以使用 context 指令指定 Dockerfile 所在文件夹的路径

docker_基础_5

标签:compose

原文地址:http://blog.51cto.com/xiong51/2104035

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!