标签: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 中有两个重要的概念:
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
??x86_64 架构的 Linux 建议按照上边的方法下载二进制包进行安装,如果您计算机的架构是 ARM (例如,树莓派),再使用 pip 安装
pip install -U docker-compose
??直接删除/usr/bin/docker-compose文件就行
[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 打印版本并退出
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
默认的模板文件名称为 docker-compose.yml ,格式为 YAML 格式。
前面一定用tab键补,子级一定是空格
version: "3" 版本信息
services: 所有的服务应当放在这下面
webapp: 服务的名称
image: examples/web 镜像名称
ports: 端口
- "80:80"
volumes: 容器卷
- "/data"
build 指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。
也可以使用 context 指令指定 Dockerfile 所在文件夹的路径
标签:compose
原文地址:http://blog.51cto.com/xiong51/2104035