在Docker中配置和使用KooCLI
在Docker中配置和使用KooCLI,请遵循如下步骤(以创建Linux系统ubuntu发行版的Docker容器为例):
在按步骤执行之前,请确保您已经安装Docker。有关安装说明,请参阅 Docker 网站。可运行以下命令确认是否安装Docker:
docker --version
- 创建Dockerfile文件
新建目录并在该目录下创建名为Dockerfile的纯文本文件,文件内容如下:
FROM ubuntu:latest RUN apt-get update -y && apt-get install curl -y # 一键式安装KooCLI RUN curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y WORKDIR hcloud
Dockerfile文件名带有大写字母D,且没有文件扩展名,每个目录只能保存一个。
hcloud_install.sh文件为一键式安装KooCLI的脚本文件,其对应的软件包校验文件为hcloud_install.sh.sha256
可在上述Dockerfile文件中追加如下内容,指定启动容器时运行的程序为KooCLI:
ENTRYPOINT ["/usr/local/bin/hcloud"]
其后,以该文件构建的docker镜像所启动的容器仅支持执行单条KooCLI命令,详情见后文所示。
- 构建镜像
在此目录下运行以下命令来构建名为“hcloudcli”的Docker镜像:
docker build --no-cache -t hcloudcli .
...
命令末尾的“.”指在当前目录中构建Docker镜像,不可省略。
在Dockerfile文件中追加“ENTRYPOINT ["/usr/local/bin/hcloud"]”时,在构建镜像时会有如下提示:
镜像构建成功后使用以下命令查看构建的镜像:
docker images
- 使用镜像
- 用法一:基于“hcloudcli”镜像创建后台运行容器,并在容器中执行命令。
docker run -it -d --name hcloudcli hcloudcli
运行如下命令查看已启动的Docker容器:
docker ps
运行如下命令进入Docker容器,进入到容器后KooCLI的使用方式与直接在宿主机上使用相同:
docker exec -it hcloudcli /bin/bash
使用完成后,执行如下命令退出“hcloudcli”容器:
exit
要完全停止“hcloudcli”容器运行,可执行如下命令:
docker stop hcloudcli
- 用法二:基于“hcloudcli”镜像创建临时容器,并执行命令。
- 创建临时容器,并执行命令:
docker run --rm -it hcloudcli ${command}
- 使用未追加“ENTRYPOINT ["/usr/local/bin/hcloud"]”的Dockerfile创建的Docker镜像,在执行“docker run”命令时需指定运行的程序为“hcloud”。如下所示:
- 创建临时容器,向容器共享宿主机文件(以Linux系统的宿主机为例),并执行命令:
通过宿主机系统目录和容器目录的挂载,将宿主机文件共享到容器:
示例1:通过将宿主机系统的/root/.hcloud/目录挂载到容器的/root/.hcloud/目录下,将宿主机配置文件共享到容器:
docker run --rm -it -v /root/.hcloud/:/root/.hcloud/ hcloudcli ${command}
示例2:通过将宿主机系统的目录/cli挂载到容器的当前目录下,将宿主机该目录下的“test.json”文件共享到容器:
docker run --rm -it -v /root/.hcloud/:/root/.hcloud/ -v /cli:$(pwd) hcloudcli ${command}
- 创建临时容器,向容器共享宿主机环境变量(以Linux系统的宿主机为例),执行命令:
docker run --rm -it -e ${envName} hcloudcli ${command}
- 创建临时容器,并执行命令:
给命令起别名(以Linux系统的宿主机为例),以简化命令。以使用追加了“ENTRYPOINT ["/usr/local/bin/hcloud"]”的Dockerfile创建的Docker镜像为例,执行如下命令,给原命令起别名为“hcloud”:
alias hcloud='docker run --rm -it hcloudcli'
后续可使用别名执行原命令。如下所示:
- 用法一:基于“hcloudcli”镜像创建后台运行容器,并在容器中执行命令。
- 更新镜像
已构建的镜像,其中的KooCLI版本为镜像构建时的最新版本。若要保证镜像中使用最新版本,重新构建镜像即可。
- 卸载镜像
执行如下命令卸载“hcloudcli”镜像:
docker rmi hcloudcli