如何将环境变量持久化到导入的Docker映像中?



我创建了一个Dockerfile:

FROM ubuntu
ENV test this

我在当前目录下构建图像:

docker build -t="test" .

我运行这个映像,只是为了确认我的环境变量已经设置:

docker run -t -i <image id> /bin/bash

在运行容器内输入set,并确认test=this

退出容器后,使用以下两个命令导出映像:

cont=`docker run -d <image id> ls`
docker export $cont > test.tar

然后导入图像:

cat test.tar | docker import - imported

运行新图像:

docker run -t -i <image id returned from prev cmd> /bin/bash

我在运行容器中输入set,我的环境变量不再存在

我做错了什么?

我已经对带有其他命令的图像这样做了,除了环境变量之外的所有内容似乎都存在

您可以保存图像而不是导出容器:

docker save your/image > /home/you/some-file.tar

如果使用save,则需要使用load来恢复映像:

docker load < /home/you/some-file.tar

我在几周前写了一篇关于exportsave的区别的博客文章:http://tuhrig.de/difference-between-save-and-export-in-docker/

最新更新