在开发环境中调试容器镜像
介绍
开发环境中不支持运行 Docker,本文档提供替代方法,使得可以:
运行容器镜像
在容器镜像中安装软件,包括使用 apt、yum、pip 进行安装
重新打包镜像
使用 Dockerfile 打包镜像
推送镜像到镜像仓库
用到的工具
- udocker: https://github.com/indigo-dc/udocker
在容器环境中运行容器。支持挂载 MLU 和 GPU 设备。
- skopeo: https://github.com/containers/skopeo
拉取、推送镜像。
- umoci: https://github.com/opencontainers/umoci
解压、打包镜像。
- kaniko: https://github.com/GoogleContainerTools/kaniko
在容器环境中使用 Dockerfile 打包镜像。
- container-utils
集成以上四个工具,提供一个类似 Docker 的命令行体验。
资源仓库 镜像 Hub 中适用开发环境的镜像已经内置上述工具。
使用 Dockerfile 打包镜像
登录镜像仓库:
container-utils login
编写 Dockerfile
使用 container-utils 读取 Dockerfile 打包镜像。<project> 为当前项目名:
container-utils build <project>/<image name>:<image tag> ./Dockerfile .
从镜像仓库拉取镜像
登录镜像仓库:
container-utils login
使用 container-utils 把镜像从仓库拷贝到本地目录:
container-utils pull public/tfserving-demo:2.3.0
运行、修改容器并重新打包
如果需要在容器中使用 GPU,需要使用以下命令运行容器。:
container-utils run-gpu public/tfserving-demo:2.3.0
如果使用 MLU 或者不使用任何加速卡,使用 container-utils.sh 运行容器。:
container-utils run public/tfserving-demo:2.3.0
可以在容器中调用 MLU 或者 GPU 资源运行推理应用、安装软件。下面是运行推理应用和安装软件的范例:
apt update apt install -y curl tf_serving_entrypoint.sh & curl -d '{"instances": [1.0, 2.0, 5.0]}' -X POST http://127.0.0.1:8501/v1/models/half_plus_two:predict
修改完容器后退出:
exit 或者 Ctrl-D
重新打包镜像:
container-utils commit public/tfserving-demo:2.3.0
推送到镜像仓库
推送到镜像仓库, <project> 为当前项目名,<project> 可以在镜像管理->我的镜像中找到:
container-utils push public/tfserving-demo:2.3.0 <project>/tfserving-demo:2.3.1