如何将环境变量保留到导入的Docker镜像中

时间:2014-05-27 15:44:57

标签: 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,我的环境变量不再存在

我做错了什么?

我用其他命令的图像完成了这个,除环境变量之外的所有内容似乎都存在。

1 个答案:

答案 0 :(得分:5)

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

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/