Skip to main content

Rancher Compose

Rancher Compose 是一个多主机版本的 Docker Compose。它运行于 Rancher UI 里属于一个环境多个主机应用里。Rancher Compose 启动的容器会被部署在满足调度规则 的同一环境中的任意  主机里。如果没有  设置调度规则,那么这些服务容器会被调度至最少容器运行的主机上运行。这些被 Rancher Compose 启动的容器的运行效果是和在 UI 上启动的效果是一致的.

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

在阅读这份 Rancher Compose 文档之前,我们希望您已经懂得 Docker Compose 了。如果您还不认识 Docker Compose,请先阅读 Docker Compose文档。

 安装#

Rancher Compose 的可执行文件下载  链接可以在 UI 的右下角中找到,我们为您提供了 Windows, Mac 以及 Linux 版本  供您使用。

另外,您也可以到Rancher Compose 的发布  页找到可执行二进制文件的下载链接。

为 Rancher Compose 设置 Rancher Server#

为了让 Rancher Compose 可以在 Rancher 实例中启动服务,您需要设置一些环境变量或者在 Rancher Compose 命令中送一些参数。必要的  环境变量分别是 RANCHER_URL, RANCHER_ACCESS_KEY, 以及 RANCHER_SECRET_KEY。 access key 和 secret key 是一个环境 API Keys, 可以在API -> 高级选项 菜单  中创建得到。

注意: 默认  情况下,在API 菜单下  创建的是账号 API Keys, 所以您需要在高级选项中创建环境 API Keys.

# Set the url that Rancher is on
$ export RANCHER_URL=http://server_ip:8080/
# Set the access key, i.e. username
$ export RANCHER_ACCESS_KEY=<username_of_environment_api_key>
# Set the secret key, i.e. password
$ export RANCHER_SECRET_KEY=<password_of_environment_api_key>

如果您不想  设置环境变量,那么您需要在 Rancher Compose  命令中手动  送入这些变量:

$ rancher-compose --url http://server_ip:8080 --access-key <username_of_environment_api_key> --secret-key <password_of_environment_api_key> up

现在您可以使用 Rancher Compose 配合docker-compose.yml文件来启动服务了。这些服务会在环境 API keys 对应的环境中启动  服务的。

就像 Docker Compose,您可以在  命令后面加上服务名称来选择  启动全部或者仅启动指定某些docker-compose.yml中服务

rancher-compose up servicename1 servicename2
rancher-compose stop servicename2

调试 Rancher Compose#

您可以设置环境变量RANCHER_CLIENT_DEBUG的值为true来让 Rancher Compose 输出  所有被执行的 CLI 命令。

# Print verbose messages for all CLI calls
$ export RANCHER_CLIENT_DEBUG=true

如果您不需要  所有的 CLI 命令信息,您可以在命令后上--debug来指定  输出哪些可视化 CLI 命令。

$ rancher-compose --debug up -d

删除服务或容器#

在缺省情况下,Rancher Compose 不会删除任何服务或者容器。这意味着如果您在一行命令里执行两次 up  命令,那么第二个 up 命令不会起任何作用。这是因为第一个 up 命令会  创建出  所有东西后让他们自己  运行。即使您没有在 up 中使用 -d 参数,Rancher Compose 也不会删除您任何服务。为了删除服务,您  只能使用 rm 命令。

构建#

构建 docker 镜像可以有两种方法。第一种方法是通过给 build 命令一个 git 或者 http URL 参数来利用远程资源构建,另一种方法则是让 build 利用本地目录,那么会上传构建上下文到 S3 并在需要时在各个节点执行

为了可以基于 S3 来创建,您需要设置 AWS 认证

Last updated on by yzeng25