去除基础镜像元数据的环境变量

#dockerfile

去除环境变量

如果检查基础镜像环境发现存在上述环境变量,可以去除生成新的镜像,以ASCEND_VISIBLE_DEVICES举例


docker inspect base:0 |grep ASCEND_VISIBLE_DEVICES

如果发现有设置该环境变量,使用下面的Dockerfile文件重新构建去除环境变量, 需要先记录一下当前基础镜像包含的一些环境变量,当前默认用户,工作目录等等


docker inspect base:0|grep -A 20 "Env\|USER\|WORKDIR"

# 先基于基础镜像创建一个容器

docker run -itd --name new_container base:0 /bin/bash

# 注意docker export只会导出容器中的文件系统,镜像的构建历史已经环境变量会被去除

docker export new_container > new_image

docker import new_image base:1

生成新镜像

根据记录的环境变量,去除ASCEND_VISIBLE_DEVICES,其余的设置好,包含USER,WORKDIR等等


FROM base:1

Env ...

USER ...

WORKDIR ...


docker build -t base:2 .