Docker Compose—简化复杂容器应用的利器
2016-10-31 11:04
796 查看
curl -L https://github.com/docker/compose/releases/download/1.9.0-rc2/docker-compose-`uname -s`-`uname -m` >
/usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
https://原文 http://debugo.com/docker-compose/
github.com/docker/compose/releases
Compose是用于定义和运行复杂Docker应用的工具。你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成。
这样compose就安装好了,查看一下compose的版本信息:
在上面的yaml文件中,我们可以看到compose文件的基本结构。首先是定义一个服务名,下面是yaml服务中的一些选项条目:
其他的
在第二节中的
docker-compose的动作包括:
参考:
Compose Document
http://www.tuicool.com/articles/AnIVJn
/usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
https://原文 http://debugo.com/docker-compose/
github.com/docker/compose/releases
Compose是用于定义和运行复杂Docker应用的工具。你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成。
1. 安装Docker和Compose
# 参考http://docs.docker.com/compose/install/#install-compose curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose上面这个方法真的慢出翔,可以通过Python pip安装。
这样compose就安装好了,查看一下compose的版本信息:
chmod +x /usr/local/bin/docker-compose docker-compose -version docker-compose 1.2.0
3. Yaml文件参考
在上面的yaml文件中,我们可以看到compose文件的基本结构。首先是定义一个服务名,下面是yaml服务中的一些选项条目:image:镜像的ID
build:直接从pwd的Dockerfile来build,而非通过image选项来pull
links:连接到那些容器。每个占一行,格式为SERVICE[:ALIAS],例如 – db[:database]
external_links:连接到该compose.yaml文件之外的容器中,比如是提供共享或者通用服务的容器服务。格式同links
command:替换默认的command命令
ports: 导出端口。格式可以是:
ports:-"3000"-"8000:8000"-"127.0.0.1:8001:8001"
expose:导出端口,但不映射到宿主机的端口上。它仅对links的容器开放。格式直接指定端口号即可。
volumes:加载路径作为卷,可以指定只读模式:
volumes:-/var/lib/mysql - cache/:/tmp/cache -~/configs:/etc/configs/:ro
volumes_from:加载其他容器或者服务的所有卷
environment:- RACK_ENV=development - SESSION_SECRET
env_file:从一个文件中导入环境变量,文件的格式为RACK_ENV=development
extends:扩展另一个服务,可以覆盖其中的一些选项。一个sample如下:
common.yml webapp: build:./webapp environment:- DEBUG=false- SEND_EMAILS=false development.yml web:extends: file: common.yml service: webapp ports:-"8000:8000" links:- db environment:- DEBUG=true db: image: postgres
net:容器的网络模式,可以为”bridge”, “none”, “container:[name or id]”, “host”中的一个。
dns:可以设置一个或多个自定义的DNS地址。
dns_search:可以设置一个或多个DNS的扫描域。
其他的
working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares,和
docker run命令是一样的,这些命令都是单行的命令。例如:
cpu_shares:73 working_dir:/code entrypoint: /code/entrypoint.sh user: postgresql hostname: foo domainname: foo.com mem_limit:1000000000 privileged:true restart: always stdin_open:true tty:true
4. docker-compose常用命令
在第二节中的 docker-compose up,这两个容器都是在前台运行的。我们可以指定-d命令以daemon的方式启动容器。除此之外,docker-compose还支持下面参数:
--verbose:输出详细信息
-f制定一个非docker-compose.yml命名的yaml文件
-p设置一个项目名称(默认是directory名)
docker-compose的动作包括:
build:构建服务
kill -s SIGINT:给服务发送特定的信号。
logs:输出日志
port:输出绑定的端口
ps:输出运行的容器
pull:pull服务的image
rm:删除停止的容器
run: 运行某个服务,例如docker-compose run web python manage.py shell
start:运行某个服务中存在的容器。
stop:停止某个服务中存在的容器。
up:create + run + attach容器到服务。
scale:设置服务运行的容器数量。例如:docker-compose scale web=2 worker=3
参考:
Compose Document
http://www.tuicool.com/articles/AnIVJn
相关文章推荐
- Docker之Docker Compose简化复杂容器应用的利器
- Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
- Docker Compose—简化复杂容器应用的利器
- Docker Compose—简化复杂容器应用的利器
- Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
- Docker Compose—简化复杂应用的利器
- .NET Core容器化之多容器应用部署@Docker-Compose
- .NET Core容器化之多容器应用部署@Docker-Compose
- .NET Core容器化之多容器应用部署-使用Docker-Compose
- Docker Compose—简化复杂应用的利器
- Docker 容器编排利器Compose(起步篇)
- zabbix企业应用之监控docker容器资源情况
- Docker 1.12.3 发布,应用容器引擎
- Docker容器内应用的日志收集方案
- 利用dockerize模板为容器内应用生成配置文件和环境变量
- Docker计划将镜像迁移至Alpine Linux平台,简化容器运行环境
- docker高级应用之动态扩展容器空间大小
- Docker容器案例:应用 Mysql
- Flume+Kafka收集Docker容器内分布式日志应用实践
- Docker实现Tengine+php-fpm的多容器协作的web应用环境