在Docker中配置和使用Cloud CLI
在Docker中配置和使用Cloud CLI,请遵循如下步骤(以创建Linux系统ubuntu发行版的Docker容器为例):
在按步骤执行之前,请确保您已经安装Docker。有关安装说明,请参阅 Docker 网站。可运行以下命令确认是否安装Docker:
docker --version

- 创建Dockerfile文件
新建目录并在该目录下创建名为Dockerfile的纯文本文件,文件内容如下:
FROM ubuntu:latest RUN apt-get update -y && apt-get install curl -y # 一键式安装Cloud CLI RUN curl -sSL https://{Endpoint}/cli/latest/cloud_install.sh -o ./cloud_install.sh && bash ./cloud_install.sh -y WORKDIR cloud
Dockerfile文件名带有大写字母D,且没有文件扩展名,每个目录只能保存一个。
可在上述Dockerfile文件中追加如下内容,指定启动容器时运行的程序为Cloud CLI:
ENTRYPOINT ["/usr/local/bin/cloud"]
其后,以该文件构建的docker镜像所启动的容器仅支持执行单条Cloud CLI命令,详情见后文所示。
- 构建镜像
在此目录下运行以下命令来构建名为“cloudcli”的Docker镜像:
docker build --no-cache -t cloudcli .
命令末尾的“.”指在当前目录中构建Docker镜像,不可省略。
镜像构建成功后使用以下命令查看构建的镜像:
docker images
- 使用镜像
- 用法一:基于“cloudcli”镜像创建后台运行容器,并在容器中执行命令。
docker run -it -d --name cloudcli cloudcli
运行如下命令查看已启动的Docker容器:
docker ps
运行如下命令进入Docker容器,进入到容器后Cloud CLI的使用方式与直接在宿主机上使用相同:
docker exec -it cloudcli /bin/bash
使用完成后,执行如下命令退出“cloudcli”容器:
exit
要完全停止“cloudcli”容器运行,可执行如下命令:
docker stop cloudcli
- 用法二:基于“cloudcli”镜像创建临时容器,并执行命令。
- 创建临时容器,并执行命令:
docker run --rm -it cloudcli ${command}- 使用未追加“ENTRYPOINT ["/usr/local/bin/cloud"]”的Dockerfile创建的Docker镜像,在执行“docker run”命令时需指定运行的程序为“cloud”。例如,查询当前CLI版本:
docker run --rm -it cloudcli cloud version
- 使用未追加“ENTRYPOINT ["/usr/local/bin/cloud"]”的Dockerfile创建的Docker镜像,在执行“docker run”命令时需指定运行的程序为“cloud”。例如,查询当前CLI版本:
- 创建临时容器,向容器共享宿主机文件(以Linux系统的宿主机为例),并执行命令:
通过宿主机系统目录和容器目录的挂载,将宿主机文件共享到容器:
示例1:通过将宿主机系统的/root/.cloud/目录挂载到容器的/root/.cloud/目录下,将宿主机配置文件共享到容器:
docker run --rm -it -v /root/.cloud/:/root/.cloud/ cloudcli ${command}`以使用追加了“ENTRYPOINT ["/usr/local/bin/cloud"]”的Dockerfile创建的Docker镜像为例,查询已添加的配置项:
docker run --rm -it -v /root/.cloud/:/root/.cloud/ cloudcli configure list
示例2:通过将宿主机系统的目录/cli挂载到容器的当前目录下,将宿主机该目录下的文件共享到容器:
docker run --rm -it -v /root/.cloud/:/root/.cloud/ -v /cli:$(pwd) cloudcli ${command} - 创建临时容器,向容器共享宿主机环境变量(以Linux系统的宿主机为例),执行命令:
docker run --rm -it -e ${envName} cloudcli ${command}
- 创建临时容器,并执行命令:
给命令起别名(以Linux系统的宿主机为例),以简化命令。以使用追加了“ENTRYPOINT ["/usr/local/bin/cloud"]”的Dockerfile创建的Docker镜像为例,执行如下命令,给原命令起别名为“cloud”:
alias cloud='docker run --rm -it cloudcli'
后续可使用别名执行原命令。
- 用法一:基于“cloudcli”镜像创建后台运行容器,并在容器中执行命令。
- 更新镜像
已构建的镜像,其中的Cloud CLI版本为镜像构建时的最新版本。若要保证镜像中使用最新版本,重新构建镜像即可。
- 卸载镜像
执行如下命令卸载“cloudcli”镜像:
docker rmi cloudcli