docker/compose项目笔记

..
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://blog.csdn.net/halcyonbaby
新浪微博:@寻觅神迹

内容系本人学习、研究和总结,如有雷同,实属荣幸!


compose项目简介

compose项目来源于之前的Fig项目,使用python代码编写。Apache2.0的license。

compose项目主要用于编排部署基于docker的应用。本身与docker/swarm配合度很高。目前发布到1.4版,但是根据官方说明,并不适合生产环境使用。

compose主要用于开发/测试场合。适合小规模应用的部署。compose以命令行方式运行,本身没有daemon。只提供应用编排部署的能力。
相对于kubernetes来说功能比较简单,相当于kubernetes的一个子集。

compose基本功能

compose目前支持以下命令


[root@localhost Django]# docker-compose 
Define and run multi-container applications with Docker.

Usage:
  docker-compose [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE           Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME   Specify an alternate project name (default: directory name)
  --verbose                 Show more output
  -v, --version             Print version and exit

Commands:
  build              Build or rebuild services
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pulls service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  up                 Create and start containers
  migrate-to-labels  Recreate containers to add labels
  version            Show the Docker-Compose version information

compose命令大多依赖于yml文件,默认使用当前目录下的“docker-compose.yml“,也可以通过-f指定。

yml文件的例子


[root@localhost Django]# cat docker-compose.yml 
db:
  image: postgres
web:
  build: .
  command: python manage.py runserver 0.0.0.0:8000
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - db

[root@localhost Django]# cat Dockerfile 
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

命令详解

  • build(构建yml中某个服务的镜像)
    如上,web这个服务是依赖于镜像build的。在本地 也存在Dockerfile文件。
    可以使用docker-compose build来构建服务的镜像。
  • ps(查看已经启动的服务状态)
  • kill(停止某个服务)
  • logs(可以查看某个服务的log)
  • port(打印绑定的public port)
  • pull(pull服务镜像)
  • up(启动yml定义的所有服务)
  • stop(停止yml中定义的所有服务)
  • start(启动被停止的yml中的所有服务)
  • kill(强行停止yml中定义的所有服务)
  • rm(删除yml中定义的所有服务)
  • restart(重启yml中定义的所有服务)
  • scale(扩展某个服务的个数,可以向上或向下)
  • migrate-to-labels(这个没有实际尝试。根据介绍是将服务从1.2迁移到1.3带labels的版本。docker之前不支持label)
  • version(查看compose的版本)

你可能感兴趣的:(技术笔记,Docker那些事)