title: 命令参数

Rancher Compose 工具的工作方式是跟 Docker Compose 的工作方式是相似的,并且支持版本 V1 的 docker-compose.yml 文件。为了启用 Rancher 的特性,您需要额外一份rancher-compose.yml文件,这份文件扩展并覆盖了docker-compose.yml文件。例如,服务缩放和健康检查这些特性就会在rancher-compose.yml中体现。

Rancher-Compose 命令

Rancher Compose 支持所有 Docker Compose 支持的命令。

Name Description
create 创建所有服务但不启动
up 启动所有服务
start 启动服务
logs 输出服务日志
restart 重启服务
stop, down  停止服务
scale 缩放服务
rm 删除服务
pull 拉取所有服务的镜像
upgrade 服务之间进行滚动升级
help, h 输出  命令列表或者指定命令的帮助列表

Rancher Compose 选项

无论何时您使用 Rancher Compose 命令,这些不同的选项您都可以使用

Name Description
--verbose, --debug
--file, -f [—file option —file option] 指定一个 compose 文件 (默认: docker-compose.yml) [$COMPOSE_FILE]
--project-name, -p 指定一个项目名称 (默认: directory name)
--url 执行 Rancher API 接口 URL [$RANCHER_URL]
--access-key 指定 Rancher API access key [$RANCHER_ACCESS_KEY]
--secret-key 指定 Rancher API secret key [$RANCHER_SECRET_KEY]
--rancher-file, -r 指定一个 Rancher Compose 文件 (默认: rancher-compose.yml)
--env-file, -e 指定一个  环境变量  配置文件
--help, -h  输出帮助文本
--version, -v  输出 Rancher Compose 版本

例子

准备开始后,您需要  创建一个 docker-compose.yml 文件和一个可选的 rancher-compose.yml 文件,如果没有 rancher-compose.yml 文件,那么  所有服务默认只分配 1 个  容器

 样例文件 docker-compose.yml
  1. version: '2'
  2. services:
  3. web:
  4. image: nginx
  5. db:
  6. image: mysql
  7. environment:
  8. MYSQL_ROOT_PASSWORD: test
 样例文件 rancher-compose.yml
  1. # Reference the service that you want to extend
  2. version: '2'
  3. services:
  4. web:
  5. scale: 2
  6. db:
  7. scale: 1

当您  的这些文件创建好后,您就可以启动这些服务到 Rancher 服务了

  1. # Creating and starting services without environment variables and selecting a stack
  2. # If the stack does not exist in Rancher, it will be created in Rancher
  3. $ rancher-compose --url URL_of_Rancher --access-key <username_of_environment_api_key> --secret-key <password_of_environment_api_key> -p stack1 up
  4. # Creating and starting services with environment variables already set
  5. $ rancher-compose -p stack1 up
  6. # To change the scale of an existing service
  7. $ rancher-compose -p stack1 scale web=3
  8. # To launch a specific service in the docker-compose.yml
  9. $ rancher-compose -p stack1 up web

注意: 如果您  没有传入 -p <STACK_NAME>,应用名就是您执行 Rancher Compose 命令所在的文件夹名称。

使用 --env-file 选项

当您运行 Rancher Compose 命令时,可以使用--env-file 选项传入一个环境变量配置文件。

样例 secrets 文件
  1. MYSQL_ROOT_PASSWORD=test
样例文件 docker-compose.yml
  1. version: '2'
  2. services:
  3. db:
  4. image: mysql
  5. environment:
  6. # Just like Docker Compose, if there is only a key, Rancher Compose will resolve to
  7. # the values on the machine or the file passed in using --env-file
  8. MYSQL_ROOT_PASSWORD:

您可以启动  服务时传入 secrets 文件

  1. $ rancher-compose --env-file secrets up -d

在传入一个文件并一个环境变量  只含一个 key,Rancher Compose  将从这个文件或者从  运行 Rancher Compose 命令的机器中的系统环境变量中提取这个值。当在文件和  系统  环境变量中同时存在同一个变量时,Rancher Compose 使用  文件中的值。

命令  选项

up 命令

Name Description
--pull, -p 升级前先在各个已有这个镜像的主机拉取最新镜像
-d 不要阻塞或  输出日志
--upgrade, -u, --recreate  当服务改变时升级
--force-upgrade, --force-recreate 强制升级服务,不管服务是否  改变
--confirm-upgrade, -c 确认升级成功并删除老容器
--rollback, -r 回滚到上一个已部署的版本
--batch-size "2" 每次升级多少个容器
--interval "1000" 升级间隔

当您运行 Rancher Compose 的 up 命令时,在  所有任务  完成后进程会继续运行。如果您希望  任务完成后进程退出,那么您需要传入 -d 选项, 防止阻塞和输出日志。

  1. # If you do not use the -d flag, Rancher Compose will continue to run until you Ctrl+C to quit
  2. $ rancher-compose up
  3. # Use the -d flag for rancher-compose to exit after running
  4. $ rancher-compose up -d

阅读更多关于 利用 Rancher Compose 升级服务.

start 命令

Name Description
-d 防止阻塞或  输出  日志

 如果您希望  任务完成后进程退出,那么您需要传入 -d 选项, 防止阻塞和输出日志。

logs 命令

Name Description
--follow  持续  输出日志

restart 命令

Name Description
--batch-size "1" 每次重启多少个容器
--interval "0" 重启间隔

缺省情况下,Rancher Compose 会顺序地  逐个  重启服务。您可以设置批量大小  和重启间隔。

stop 与 scale

Name Description
--timeout, -t "10" 指定停止超时秒数
  1. # To change the scale of an existing service
  2. $ rancher-compose -p stack1 scale service1=3

rm 命令

Name Description
--force, -f 允许删除  所有服务
-v 同时移除关联的容易

当移除服务时,Rancher Compose 仅移除在 docker-compose.yml 文件中出现的服务。如果有其他的服务在 Rancher 的 stack 里,他们不会被移除,因为 Rancher Compose 不知道他们的存在。

 所以 stack 不会被移除, 因为 Rancher Compose 不知道 stack 里是否还有其他容器。

缺省  情况下,附加到容器的卷不会被移除。您可以通过 docker volume ls 查看所有的卷。

pull 命令

Name Description
--cached, -c 只更新存在该  镜像缓存的主机, 不要拉取新的
  1. # Pulls new images for all services located in the docker-compose.yml file on ALL hosts in the environment
  2. $ rancher-compose pull
  3. # Pulls new images for all services located in docker-compose.yml file on hosts that already have the image
  4. $ rancher-compose pull --cached

注意: 不同于 docker-compose pull, 您不可以指定拉取哪些服务的镜像,Rancher Compose 会拉取所有在 docker-compose.yml  里的服务镜像。

upgrade 命令

您可以使用 Rancher Compose 升级在 Rancher 里的服务。请阅读更多关于在何时  和怎样更新您的服务.

删除服务/容器

默认情况下,Rancher Compose 不会  删除  任何东西。 这意味着  如果您在  一行里有两  个 up 命令, 第二个 up 是不会做  任何事情的。这是因为第一个 up 会创建所有东西并保持运行。甚至您没有传 -dup,Rancher Compose  也不会删除您的服务。要删除服务,您只能使用 rm