命令和选项


Rancher CLI 可以用于操作Rancher中的环境、主机、应用、服务和容器。

Rancher CLI 命令

名字描述
catalog操作应用商店
config设置客户端配置
docker在主机上运行docker命令
environment, env操作环境
events, event展示资源变更事件
exec在容器上运行命令
export将应用的yml配置文件导出为tar或者本地文件
hosts, host操作主机
logs抓取容器的日志
ps展示服务/容器
restart重启服务/容器
rm删除服务、容器、应用、主机、卷
run运行服务
scale设置一个服务运行的容器数量
sshSSH到主机
stacks, stack操作应用
start, activate启动服务、容器、主机、应用
stop, deactivate停止服务、容器、主机、应用
up启动所有服务
volumes, volume操作卷
inspect查看服务、容器、主机、环境、应用、卷的详情
wait等待服务、容器、主机、应用栈、机器、项目模版
help展示命令列表或者某个命令的说明

Rancher CLI 全局参数

当使用rancher时,可以使用不同的全局参数。

名字描述
—debug调试日志
—config value, -c value客户端配置文件 (缺省为 ${HOME}/.rancher/cli.json) [$RANCHER_CLIENT_CONFIG]
—environment value, —env value环境名字或ID [$RANCHER_ENVIRONMENT]
—url value指定Rancher API接口链接 [$RANCHER_URL]
—access-key value指定Rancher API访问密钥 [$RANCHER_ACCESS_KEY]
—secret-key value指定Rancher API安全密钥 [$RANCHER_SECRET_KEY]
—host value执行docker命令的主机[$RANCHER_DOCKER_HOST]
—wait, -w等待资源到达最终状态
—wait-timeout value等待的超时时间(缺省值: 600秒)
—wait-state value等待的状态(正常, 健康等)
—help, -h展示帮助说明
—version, -v打印版本信息

等待资源

全局的选项如—wait-w 可以用于需逐渐到达最终状态的命令。当编辑Rancher命令的脚本时,使用-w选项可以让脚本等待资源就绪后再执行下一个命令。等待的超时时间默认时十分钟,但如果您想要改变超时时间,可以使用—wait-timeout选项。您还可以使用—wait-state选项来指定资源必须到达某个特定状态后,命令才结束返回。

Rancher Catalog 说明

rancher catalog 命令提供了操作应用商店模版的相关操作。

选项

名字描述
—quiet, -q只展示IDs
—format valuejson格式或自定义格式: {% raw %}‘{{.ID}} {{.Template.Id}}’{% endraw %}
—system, -s展示系统模版

子命令

名字描述
ls列出应用商店模版
install安装应用商店模版
help展示命令列表或某个命令的说明

Rancher Catalog Ls

rancher catalog ls 命令列出环境下的所有模版。

选项
名字描述
—quiet, -q只展示IDs
—format valuejson格式或自定义格式: {% raw %}‘{{.ID}} {{.Template.Id}}’{% endraw %}
—system, -s展示系统模版
  1. # 列出所有应用商店模版
  2. $ rancher catalog ls
  3. # 列出运行kubernetes环境中的所有应用商店模版
  4. $ rancher --env k8sEnv catalog ls
  5. # 列出系统应用商店模版
  6. $ rancher catalog ls --system

Rancher Catalog install

rancher catalog install命令在您的环境中安装应用商店模版。

选项
名字描述
-answers value, -a value模版的参数文件。格式应为yaml或者json,并且确保文件有正确的后缀名。
—name value创建的应用的名字
—system, -s安装一个系统模版
  1. # 安装一个应用模版
  2. $ rancher catalog install library/route53:v0.6.0-rancher1 --name route53
  3. # 安装一个应用模版并将其标识为系统模版
  4. $ rancher catalog install library/route53:v0.6.0-rancher1 --name route53 --system

Rancher Config 说明

rancher config 命令用于设置您的Rancher Server的配置.

  1. $ rancher config
  2. URL []: http://<server_ip>:8080
  3. Access Key []: <accessKey_of_account_api_key>
  4. Secret Key []: <secretKey_of_account_api_key>
  5. # 如果超过一个环境,您需要指定一个环境
  6. Environments:
  7. [1] Default(1a5)
  8. [2] k8s(1a10)
  9. Select: 1
  10. INFO[0017] Saving config to /Users/<username>/.rancher/cli.json

选项

名字描述
—print打印当前的配置

如果您想要打印当前配置,可以使用——print

  1. # 显示当前的Rancher的配置
  2. $ rancher config --print

Rancher Docker 说明

rancher docker 命令允许您在某台机器上运行任何Docker命令。 使用 $RANCHER_DOCKER_HOST 来运行Docker命令. 使用 —host <hostID> 或者 —host <hostName> 来选择其他主机。

  1. $ rancher --host 1h1 docker ps

选项

名字描述
—help-docker显示 docker —help

注意: 如果环境变量RANCHER_DOCKER_HOST没有设置,您需要通过—host指定运行Docker命令的主机。

Rancher Environment 说明

rancher environment命令让您可以操作环境。如果您使用账户API key, 您可以创建和更新环境。如果您使用环境API key,您不能创建和更新其他环境,只能看到您当前的环境。

选项

名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Environment.Name}}’{% endraw %}

子命令

名字描述
ls列出所有环境
create创建一个环境
templates, template操作环境模版
rm删除环境
deactivate停用环境
activate启用环境
help显示命令列表或者某个命令的帮助

Rancher Env Ls

rancher env ls命令显示Rancher中的所有环境。

选项
名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Environment.Name}}’{% endraw %}
  1. $ rancher env ls
  2. ID NAME ORCHESTRATION STATE CREATED
  3. 1a5 Default Cattle active 2016-08-15T19:20:46Z
  4. 1a6 k8sEnv Kubernetes active 2016-08-17T03:25:04Z
  5. # 只列出环境ID
  6. $ rancher env ls -q
  7. 1a5
  8. 1a6

Rancher Env Create

rancher env create命令用于创建一个新的环境,环境的缺省的编排引擎使用cattle。

选项
名字描述
—template value, -t value创建环境的模版(缺省: “Cattle”)
  1. # 创建一个环境
  2. $ rancher env create newCattleEnv
  3. # 创建一个kubernetes 环境
  4. $ rancher env create -t kubernetes newk8sEnv

Rancher Env Template

rancher env template 命令用于导出或者导入环境模版。

选项
名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.ProjectTemplate.Name}}’{% endraw %}
子命令
名字描述
export将一个环境模版导出到标准输出
import从一个文件中导入环境模版
help显示命令列表或者某个命令的帮助

Rancher Env Rm

rancher env rm命令用于删除环境。可以使用环境名字或者ID来删除。

  1. # 使用名字删除环境
  2. $ rancher env rm newk8sEnv
  3. # 使用ID删除环境
  4. $ rancher env rm 1a20

Rancher Env Deactivate

rancher env deactivate命令停用一个环境。用环境名字或者ID来指定停用的环境。

Rancher Env Activate

rancher env activate 命令启用一个环境。用环境名字或者ID来指定启用的环境。

Rancher Events 说明

rancher events 命令列出Rancher Server中所有出现的事件。

选项

名字描述
—format valuejson 或者自定义格式: {% raw %}‘{{.Name}} {{.Data.resource.kind}}’{% endraw %}
—reconnect, -r出错时重连接

Rancher Exec 说明

rancher exec 命令可以用于执行进入在Rancher的容器。 用户不需要知道容器在哪个宿主机,只需要知道Rancher中的容器ID(如 1i1, 1i788)。

  1. # 执行进入一个容器
  2. $ rancher exec -i -t 1i10

选项

名字描述
—help-docker显示docker exec —help

rancher exec 命令找到容器后,它在指定的主机和容器执行 docker exec命令。 可以通过使用—help-docker来显示 docker exec的说明。

  1. # 显示docker exec --help
  2. $ rancher exec --help-docker

Rancher Export 说明

rancher export 命令将一个应用的 docker-compose.ymlrancher-compose.yml文件导出为tar包。

选项

名字描述
—file value, -f value输出到一个指定文件中。使用 - 可以输出到标准输出流
—system, -s是否导出整个环境,包括系统应用。
  1. # 将一个应用中所有服务的docker-compose.yml和 rancher-compose.yml导出为tar包。
  2. $ rancher export mystack > files.tar
  3. $ rancher export -f files.tar mystack

Rancher hosts 说明

rancher hosts命令可用于操作环境中的主机。

选项

名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Host.Hostname}}’{% endraw %}

子命令

名字描述
ls显示主机列表
create创建一个主机

Rancher Hosts Ls

rancher hosts ls 命令列出所有主机。

选项
名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Host.Hostname}}’{% endraw %}
  1. $ rancher hosts ls
  2. ID HOSTNAME STATE IP
  3. 1h1 host-1 active 111.222.333.444
  4. 1h2 host-3 active 111.222.333.555
  5. 1h3 host-2 active 111.222.333.666
  6. 1h4 host-4 active 111.222.333.777
  7. 1h5 host-5 active 111.222.333.888
  8. 1h6 host-6 active 111.222.333.999
  9. # 只显示主机ID
  10. $ rancher hosts ls -q
  11. 1h1
  12. 1h2
  13. 1h3
  14. 1h4
  15. 1h5
  16. 1h6

Rancher Hosts Create

rancher hosts create命令用于创建 主机. 当创建主机时,需要调用Docker Machine命令,因此需要提供该命令所需要的选项。

Rancher Logs 说明

rancher logs 用于抓取指定容器名或容器ID的容器的日志。

选项

名字描述
—service, -s显示服务日志
—sub-log显示服务副日志
—follow, -f设置日志继续输出
—tail value显示日志的最后的几行 (缺省: 100)
—since value显示自某个时间戳后的日志
—timestamps, -t显示时间戳
  1. # 获取某个容器ID对应容器的最后50行日志
  2. $ rancher logs --tail 50 <ID>
  3. # 使用容器名来查看日志
  4. $ rancher logs -f <stackName>/<serviceName>

Rancher ps 说明

rancher ps 命令显示Rancher中的所有服务或者容器。如果不附加任何选项,该命令会返回环境中所有的服务。

选项

名字描述
—all, -a显示暂停/无效和最近移除的资源
—system, -s显示系统资源
—containers, -c显示容器
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.Service.Id}} {{.Service.Name}} {{.Service.LaunchConfig.ImageUuid}}’{% endraw %}
  1. # 列出所有服务
  2. $ rancher ps
  3. ID TYPE NAME IMAGE STATE SCALE ENDPOINTS DETAIL
  4. 1s1 service Default/blog ghost activating 3 Waiting for [instance:Default_blog_3]. Instance status: Storage : Downloading
  5. # 列出所有容器
  6. $ rancher ps -c
  7. ID NAME IMAGE STATE HOST DETAIL
  8. 1i1 Default_blog_1 ghost running 1h1
  9. 1i2 Default_blog_2 ghost running 1h2
  10. 1i3 Default_blog_3 ghost running 1h3

detail 一列提供了服务的当前状态。

Rancher restart 说明

rancher restart可以用于重启任何主机、服务和容器。

选项

名字描述
—type value指定重启的类型 (服务, 容器)
—batch-size value一次中重启的容器数量 (缺省值: 1)
—interval value两次重启的间隔时间,单位ms (缺省值: 1000)
  1. # 通过服务、容器、主机的ID重启
  2. $ rancher restart <ID>
  3. # 通过服务、容器、主机的名字重启
  4. $ rancher restart <stackName>/<serviceName>

注意: 服务里中需要包含了应用的名字,以保证指定了正确的服务。

Rancher rm 说明

rancher rm 命令用于删除资源,比如主机、应用栈、服务、容器或者卷。

选项

名字描述
—type value指定删除的特定类型
—stop, -s在删除前首先暂停资源
  1. $ rancher rm <ID>

Rancher run 说明

run 命令以1个容器的规模来部署一个服务。当创建服务时,如果想将其置于某个应用栈中, 需要提供—namestackName/serviceName。如果—name 没有提供,那么新建的服务的名字是Docker提供的容器名,且处于 Default 应用中。

  1. $ rancher run --name App2/app nginx
  2. # CLI返回新建服务的ID
  3. 1s3
  4. $ rancher -i -t --name serviceA ubuntu:14.04.3
  5. 1s4

如果要在主机上公开一个端口,那么该主机的端口必须可用。Rancher会自动调度容器到端口可用的主机上。

  1. $ rancher -p 2368:2368 --name blog ghost
  2. 1s5

Rancher scale 说明

当您使用rancher run创建一个服务时,服务的规模缺省是1。可以使用rancher scale命令来扩容某个服务。可以通过名字或者ID来指定服务。

  1. $ rancher scale <stackName>/<serviceName>=5 <serviceID>=3

Rancher ssh 说明

rancher ssh 用于ssh到UI创建的某个主机中。它无法ssh通过自定义 命令添加的主机。

  1. $ rancher ssh <hostID>

Rancher stacks 说明

rancher stacks命令可以操作环境中的应用。

选项

名字描述
—system, -s显示系统资源
—quiet, -q只显示ID
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Stack.Name}}’{% endraw %}

命令

名字描述
ls列出应用
create创建一个应用

Rancher Stacks Ls

rancher stacks ls 命令列出指定环境中的应用。

选项
名字描述
—system, -s显示系统资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Stack.Name}}’{% endraw %}
  1. #列出所有应用栈
  2. $ rancher stacks ls
  3. ID NAME STATE CATALOG SYSTEM DETAIL
  4. 1e1 zookeeper healthy catalog://community:zookeeper:1 false
  5. 1e2 Default degraded false
  6. 1e3 App1 healthy false
  7. # 只列出应用栈IDs
  8. $ rancher stacks ls -q
  9. 1e1
  10. 1e2
  11. 1e3

Rancher Stacks Create

rancher stacks create 命令用于创建新的应用。应用可以为空的或者从docker-compose.ymlrancher-compose.yml文件中创建。

选项
名字描述
—start在创建后启动应用
—system, -s创建一个系统应用
—empty, -e创建一个空的应用
—quiet, -q只展示IDs
—docker-compose value, -f valueDocker Compose 文件 (缺省: “docker-compose.yml”)
—rancher-compose value, -r valueRancher Compose 文件 (缺省: “rancher-compose.yml”)
  1. # 创建一个空的应用
  2. $ rancher stacks create NewStack -e
  3. # 从一个docker-compose和rancher-compose文件创建应用
  4. # 以及在创建后运行应用
  5. $ rancher stacks create NewStack -f dc.yml -r rc.yml --start

Rancher start/activate 说明

rancher startrancher activate 命令启动指定的资源类型,如主机、服务或容器。

选项

名字描述
—type value启动指定的类型 (服务, 容器, 主机, 应用)
  1. # 用资源ID来启动
  2. $ rancher start <ID>
  3. # 用资源名字来启动
  4. $ rancher start <stackName>/<serviceName>

注意: 为了保证指定了正确的服务,服务名中需要包含应用的名字。

Rancher stop/deactivate 说明

rancher stoprancher deactivate 命令用于停止指定的资源类型,如主机、服务和容器。

选项

名字描述
—type value停止指定的资源类型 (服务, 容器, 主机, 应用)
  1. # 用ID来停止
  2. $ rancher stop <ID>
  3. # 用名字来停止
  4. $ rancher stop <stackName>/<serviceName>

注意: 为了保证指定了正确的服务,服务名中需要包含应用的名字。

Rancher up 说明

rancher up命令类似于 Docker Compose的up 命令。

选项

名字描述
—pull, -p在升级前在所有主机上先拉取镜像
-d不阻塞和记录日志
—upgrade, -u, —recreate如果服务发生变更则升级
—force-upgrade, —force-recreate不管服务有无变更,都进行升级
—confirm-upgrade, -c确认升级成功和删除旧版本的容器
—rollback, -r回滚到之前部署的版本
—batch-size value一次升级的容器数量 (缺省: 2)
—interval value更新的间隔,单位毫秒 (缺省: 1000)
—rancher-file value指定一个新的Rancher compose文件 (缺省: rancher-compose.yml)
—env-file value, -e value指定一个包含了环境变变量的文件。格式应为yaml或者json,并且确保文件有正确的后缀名。
—file value, -f value指定一个或多个新的compose文件 (缺省: docker-compose.yml) [$COMPOSE_FILE]
—stack value, -s value指定一个新的项目名字(缺省: 目录名)
  1. # 在末尾还上 -d,防止阻塞和记录日志
  2. $ rancher up -s <stackName> -d

Rancher volumes 说明

rancher volumes 命令用于操作卷。

选项

名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Volume.Name}}’{% endraw %}

命令

名字描述
ls列出卷
rm删除一个卷
create创建一个卷

Rancher Volume LS

rancher volume ls命令列出环境中的所有卷。

选项
名字描述
—all, -a显示暂停/无效和最近移除的资源
—quiet, -q只显示IDs
—format valuejson 或者自定义格式: {% raw %}‘{{.ID}} {{.Volume.Name}}’{% endraw %}
  1. $ rancher volumes ls
  2. ID NAME STATE DRIVER DETAIL
  3. 1v1 active
  4. 1v2 active
  5. 1v3 detached
  6. 1v4 active
  7. 1v5 detached
  8. 1v6 detached
  9. 1v7 rancher-agent-state active local

Rancher Volume Rm

rancher volume rm 命令用于删除卷。

  1. $ rancher volumes rm <VOLUME_ID>

Rancher Volume Create

rancher volume create 用于创建卷。

选项
名字描述
—driver value指定卷驱动
—opt value设置驱动特定的 key/value 选项
  1. # 使用 Rancher NFS 驱动创建新的卷
  2. $ rancher volume create NewVolume --driver rancher-nfs

Rancher inspect 说明

rancher inspect 用于查看资源的详情。

选项

名字描述
—type value查看指定的类型 (服务, 容器, 主机)
—links在资源详情中包含操作和链接的URL
—format valuejson 或者自定义格式: {% raw %}‘{{.kind}}’{% endraw %} (默认: “json”)
  1. # 用ID来查看详情
  2. $ rancher inspect <ID>
  3. # 用名字来查看详情
  4. $ rancher inspect <stackName>/<serviceName>

注意: 为了保证指定了正确的服务,服务名中需要包含应用的名字。

Rancher wait 说明

rancher wait 命令用于等待资源完成操作。 它对自动化Rancher命令十分有用,可以在脚本中用于等待某个资源就绪后再执行更多操作。

  1. $ rancher start 1i1
  2. $ rancher wait 1i1