操作场景
开发机中默认提供 Docker 客户端,适用于拉取镜像、构建镜像、运行/调试容器等日常开发场景。
限制条件
不支持计费模式为按量计费的场景。
支持的 Docker 命令
基础信息
docker infodocker version登录与镜像
docker logindocker imagesdocker pulldocker pushdocker tagdocker inspectdocker savedocker loaddocker commitdocker exportdocker import容器生命周期
docker builddocker rundocker psdocker stopdocker killdocker restart调试与运维
docker logsdocker exec说明:
其他未列出的 Docker 子命令不保证完全兼容,建议优先使用上述命令集。
详细操作说明
登录镜像仓库
开发机内的 Docker 客户端可直接登录镜像仓库。
# 登录到镜像仓库docker login <registry-url> -u <username> -p <password># 示例docker login tione.tencentcloudcr.com -u ****** -p ******
拉取镜像
镜像会拉取到开发机所在机器磁盘中,请注意磁盘空间。
# 从仓库拉取镜像docker pull <image-name>:<tag># 示例docker pull tione.tencentcloudcr.com/tione-public-images/notebook-conda-cpu:ubuntu22.04-miniforge3-py38
查看镜像
可以列出本地镜像列表,查看指定镜像的详细信息。
# 列出本地镜像docker images# 查看镜像详细信息docker inspect <image-id|image-name>
构建镜像
建议使用多阶段构建减少层数和体积,构建完成的镜像可直接在开发机内运行或推送到镜像仓库。
# 使用 Dockerfile 构建镜像docker build -t <image-name>:<tag> <context-path># 示例docker build -t myapp:1.0 .
推送镜像
通过
docker tag 标记镜像目标仓库地址,使用 docker push 推送。# 标记镜像docker tag <local-image> <registry>/<repository>:<tag># 推送镜像到仓库docker push <registry>/<repository>:<tag># 示例docker tag myapp:1.0 registry.example.com/myteam/myapp:1.0docker push registry.example.com/myteam/myapp:1.0
运行容器
当前暂不支持在命令行中指定 GPU,GPU 相关配置请通过 Notebook/开发机界面选择,容器网络和挂载会受安全策略约束,详见后文限制说明。
# 运行容器docker run [options] <image-name># 可选项 -d 后台运行 -v 卷挂载 --name 指定容器名# 示例docker run -d --name myContainer tione.tencentcloudcr.com/tione-public-images/notebook-conda-cpu:ubuntu22.04-miniforge3-py38# 查看运行中的容器(-a 包含已停止的容器)docker ps
删除镜像或容器
可以删除单个镜像/容器,或通过 prune 清理未被引用的资源,释放磁盘空间。
# 删除镜像docker rmi -f <镜像ID或名称> # -f 为强制删除docker image prune -f # 删除未被引用的镜像# 删除容器docker rm -f <容器ID或名称> # -f 为强制删除docker container prune -f # 删除所有退出的容器
网络限制
强制 host 网络:所有容器都会被重写为
--network host。端口映射清理:
-p/ 端口映射,只会看后面容器端口部分。如 -p 8080:90,会忽略 8080,直接在开发机网络空间启动 90 端口。路径挂载限制
挂载黑名单前缀(只要命中即拒绝):
根及系统关键目录:
/、/etc、/usr、/var、/bin、/sbin、/lib、/dev、/proc、/run、/sys、/tmp安全限制
禁止特权:
禁止
--privileged,发现即拒绝请求。禁止
--cap-add 任意能力。