制作镜像
英博云平台上启用了Docker容器功能的开发机,支持制作和推送镜像。
前提条件
- 开发机已打开Docker容器开关。
通过Dockerfile构建
支持使用命令docker build
, 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
注意:
- 无法从docker.io源站拉取,建议在使用
FROM
指定基础镜像时,尽量不要使用Docker Hub的容器镜像。- 平台已对GCR、GHCR、NVCR、Quay等镜像源做了加速,使用
FROM
指定基础镜像时,前缀只需要加入registry-cn-huabei1-internal.ebcloud.com。- 用户自定义镜像仓库地址可通过选择 镜像 > 自定义镜像 页面左上角获取。
- Dockerfile示例,保存在共享存储卷/data下,执行
docker build
命令:
FROM registry-cn-huabei1-internal.ebcloud.com/cadvisor/cadvisor:v0.39.3
CMD ["echo", "Hello from minimal Docker image!"]
docker build -t registry-cn-huabei1-internal.ebcloud.com/myprject/images1:tag1 .

参数说明:
- -t :指定要创建的目标镜像名。
- . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径。
- 使用
docker images
查看创建的镜像已经在列表中存在,镜像ID为1785e2bcc6a9

- 设置镜像标签,使用
docker tag
命令,为镜像添加一个新的标签。
docker tag 1785e2bcc6a9 registry-cn-huabei1-internal.ebcloud.com/myprject/images1:tag2

- 使用
docker push
命令,推送镜像到用户的自定义镜像仓库中。
docker push registry-cn-huabei1-internal.ebcloud.com/myprject/images1:tag2

通过Docker commit构建
支持在 Docker 容器中安装和部署一些软件,再通过docker commit
将更新后的容器打包为一个新的镜像。
# 列出当前运行的 Docker 容器
root@demo2-0-server:/data2/ss# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 244bcf77cc25 images "/usr/bin/cadvisor -…" 9 seconds ago Up 8 seconds (health: starting) 8080/tcp boring_bell
# 从运行中的容器创建新的镜像,并命名为 demo:v1.0
root@demo2-0-server:/data2/ss# docker commit 244bcf77cc25 demo:v1.0
sha256:d1564a370f47c493f24c4954906590492217b6f826f99db910dcf10b8ec298f5
# 列出所有 Docker 镜像
root@demo2-0-server:/data2/ss# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
demo v1 d1564a370f47 16 seconds ago 87MB
# 给 Docker 镜像打标签
root@demo2-0-server:/data2/ss# docker tag d1564a370f47 registry-cn-huabei1-internal.ebcloud.com/myprject/images1:tag2
# 推送镜像到用户的自定义镜像仓库中
root@demo2-0-server:/data2/ss# docker push registry-cn-huabei1-internal.ebcloud.com/myprject/images1:tag2
通过Docker save构建
支持通过docker save
命令将 Docker 镜像保存为 tar 文件,尽量存在持久化存储卷中。
docker save -o /data2/demo.tar demo:v1.0
