Skip to main content

命令和选项

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

1. 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展示命令列表或者某个命令的说明

2. 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打印版本信息

2.1. 等待资源#

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

2.2. Rancher Catalog 说明#

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

2.2.1. 选项#

::: v-pre 名字 | 描述 ----|----- --quiet, -q | 只展示 IDs --format value | json格式或自定义格式: '{{.ID}} {{.Template.Id}}' --system, -s | 展示系统模版 ::::

2.2.2. 子命令#

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

2.2.3. Rancher Catalog Ls#

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

2.2.3.1. 选项#

::: v-pre 名字 | 描述 -----|----- --quiet, -q | 只展示 IDs --format value | json格式或自定义格式: '{{.ID}} {{.Template.Id}}' --system, -s | 展示系统模版 ::::

# 列出所有应用商店模版
rancher catalog ls
# 列出运行kubernetes环境中的所有应用商店模版
rancher --env k8sEnv catalog ls
# 列出系统应用商店模版
rancher catalog ls --system

2.2.4. Rancher Catalog install#

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

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

2.3. Rancher Config 说明#

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

2.3.1. 选项#

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

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

# 显示当前的Rancher的配置
rancher config --print

2.4. Rancher Docker 说明#

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

rancher --host 1h1 docker ps

2.4.1. 选项#

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

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

2.5. Rancher Environment 说明#

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

2.5.1. 选项#

::: v-pre 名字 | 描述 ----|----- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Environment.Name}}' ::::

2.5.2. 子命令#

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

2.5.3. Rancher Env Ls#

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

2.5.3.1. 选项#

::: v-pre 名字 | 描述 ----|----- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Environment.Name}}' ::::

rancher env ls
ID NAME ORCHESTRATION STATE CREATED
1a5 Default Cattle active 2016-08-15T19:20:46Z
1a6 k8sEnv Kubernetes active 2016-08-17T03:25:04Z
# 只列出环境ID
rancher env ls -q
1a5
1a6

2.5.4. Rancher Env Create#

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

2.5.4.1. 选项#
名字描述
--template value, -t value创建环境的模版(缺省: "Cattle")
# 创建一个环境
rancher env create newCattleEnv
# 创建一个kubernetes 环境
rancher env create -t kubernetes newk8sEnv

2.5.5. Rancher Env Template#

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

2.5.5.1. 选项#

::: v-pre 名字 | 描述 ---|---- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.ProjectTemplate.Name}}' ::::

2.5.5.2. 子命令#
名字描述
export将一个环境模版导出到标准输出
import从一个文件中导入环境模版
help显示命令列表或者某个命令的帮助

2.5.6. Rancher Env Rm#

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

# 使用名字删除环境
rancher env rm newk8sEnv
# 使用ID删除环境
rancher env rm 1a20

2.5.7. Rancher Env Deactivate#

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

2.5.8. Rancher Env Activate#

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

2.6. Rancher Events 说明#

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

2.6.1. 选项#

::: v-pre 名字 | 描述 ---|---- --format value | json 或者自定义格式: '{{.Name}} {{.Data.resource.kind}}' --reconnect, -r | 出错时重连接 ::::

2.7. Rancher Exec 说明#

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

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

2.7.1. 选项#

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

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

# 显示docker exec --help
rancher exec --help-docker

2.8. Rancher Export 说明#

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

2.8.1. 选项#

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

2.9. Rancher hosts 说明#

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

2.9.1. 选项#

::: v-pre 名字 | 描述 ----|----- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Host.Hostname}}' ::::

2.9.2. 子命令#

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

2.9.3. Rancher Hosts Ls#

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

2.9.3.1. 选项#

::: v-pre 名字 | 描述 ----|----- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Host.Hostname}}' ::::

rancher hosts ls
ID HOSTNAME STATE IP
1h1 host-1 active 111.222.333.444
1h2 host-3 active 111.222.333.555
1h3 host-2 active 111.222.333.666
1h4 host-4 active 111.222.333.777
1h5 host-5 active 111.222.333.888
1h6 host-6 active 111.222.333.999
# 只显示主机ID
rancher hosts ls -q
1h1
1h2
1h3
1h4
1h5
1h6

2.9.4. Rancher Hosts Create#

2.10. Rancher Logs 说明#

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

2.10.1. 选项#

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

2.11. Rancher ps 说明#

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

2.11.1. 选项#

::: v-pre 名字 | 描述 ---|---- --all, -a | 显示暂停/无效和最近移除的资源 --system, -s | 显示系统资源 --containers, -c | 显示容器 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.Service.Id}} {{.Service.Name}} {{.Service.LaunchConfig.ImageUuid}}' ::::

# 列出所有服务
rancher ps
ID TYPE NAME IMAGE STATE SCALE ENDPOINTS DETAIL
1s1 service Default/blog ghost activating 3 Waiting for [instance:Default_blog_3]. Instance status: Storage : Downloading
# 列出所有容器
rancher ps -c
ID NAME IMAGE STATE HOST DETAIL
1i1 Default_blog_1 ghost running 1h1
1i2 Default_blog_2 ghost running 1h2
1i3 Default_blog_3 ghost running 1h3

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

2.12. Rancher restart 说明#

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

2.12.1. 选项#

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

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

2.13. Rancher rm 说明#

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

2.13.1. 选项#

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

2.14. Rancher run 说明#

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

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

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

rancher -p 2368:2368 --name blog ghost
1s5

2.15. Rancher scale 说明#

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

rancher scale <stackName>/<serviceName>=5 <serviceID>=3

2.16. Rancher ssh 说明#

rancher ssh <hostID>

2.17. Rancher stacks 说明#

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

2.17.1. 选项#

::: v-pre 名字 | 描述 ----|----- --system, -s | 显示系统资源 --quiet, -q | 只显示 ID --format value | json 或者自定义格式: '{{.ID}} {{.Stack.Name}}' ::::

2.17.2. 命令#

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

2.17.3. Rancher Stacks Ls#

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

2.17.3.1. 选项#

::: v-pre 名字 | 描述 ----|----- --system, -s | 显示系统资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Stack.Name}}' ::::

#列出所有应用栈
rancher stacks ls
ID NAME STATE CATALOG SYSTEM DETAIL
1e1 zookeeper healthy catalog://community:zookeeper:1 false
1e2 Default degraded false
1e3 App1 healthy false
# 只列出应用栈IDs
rancher stacks ls -q
1e1
1e2
1e3

2.17.4. Rancher Stacks Create#

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

2.17.4.1. 选项#
名字描述
--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")
# 创建一个空的应用
rancher stacks create NewStack -e
# 从一个docker-compose和rancher-compose文件创建应用
# 以及在创建后运行应用
rancher stacks create NewStack -f dc.yml -r rc.yml --start

2.18. Rancher start/activate 说明#

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

2.18.1. 选项#

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

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

2.19. Rancher stop/deactivate 说明#

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

2.19.1. 选项#

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

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

2.20. Rancher up 说明#

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

2.20.1. 选项#

名字描述
--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指定一个新的项目名字(缺省: 目录名)
# 在末尾还上 -d,防止阻塞和记录日志
rancher up -s <stackName> -d

2.21. Rancher volumes 说明#

rancher volumes 命令用于操作卷。

2.21.1. 选项#

::: v-pre 名字 | 描述 ---|---- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Volume.Name}}' ::::

2.21.2. 命令#

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

2.21.3. Rancher Volume LS#

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

2.21.3.1. 选项#

::: v-pre 名字 | 描述 ---|---- --all, -a | 显示暂停/无效和最近移除的资源 --quiet, -q | 只显示 IDs --format value | json 或者自定义格式: '{{.ID}} {{.Volume.Name}}' ::::

rancher volumes ls
ID NAME STATE DRIVER DETAIL
1v1 active
1v2 active
1v3 detached
1v4 active
1v5 detached
1v6 detached
1v7 rancher-agent-state active local

2.21.4. Rancher Volume Rm#

rancher volume rm 命令用于删除卷。

rancher volumes rm <VOLUME_ID>

2.21.5. Rancher Volume Create#

rancher volume create 用于创建卷。

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

2.22. Rancher inspect 说明#

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

2.22.1. 选项#

::: v-pre 名字 | 描述 ---|---- --type value | 查看指定的类型 (服务, 容器, 主机) --links | 在资源详情中包含操作和链接的 URL --format value | json 或者自定义格式: '{{.kind}}' (默认: "json") ::::

# 用ID来查看详情
rancher inspect <ID>
# 用名字来查看详情
rancher inspect <stackName>/<serviceName>

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

2.23. Rancher wait 说明#

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

rancher start 1i1
rancher wait 1i1
Last updated on by yzeng25