xiguaqq20 发表于 2015-10-13 07:00:06

docker/compose项目笔记

  ..

声明:

本博客欢迎转发,但请保留原作者信息!

博客地址:http://blog.iyunv.com/halcyonbaby

新浪微博:@寻觅神迹
  内容系本人学习、研究和总结,如有雷同,实属荣幸!   
compose项目简介
  compose项目来源于之前的Fig项目,使用python代码编写。Apache2.0的license。
  compose项目主要用于编排部署基于docker的应用。本身与docker/swarm配合度很高。目前发布到1.4版,但是根据官方说明,并不适合生产环境使用。
  compose主要用于开发/测试场合。适合小规模应用的部署。compose以命令行方式运行,本身没有daemon。只提供应用编排部署的能力。

相对于kubernetes来说功能比较简单,相当于kubernetes的一个子集。
compose基本功能
compose目前支持以下命令


# docker-compose
Define and run multi-container applications with Docker.
Usage:
docker-compose
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-labelsRecreate containers to add labels
version            Show the Docker-Compose version information

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


# 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
# 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的版本)

版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: docker/compose项目笔记