我创建了一个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
我在几周前写了一篇关于export
和save
的区别的博客文章:http://tuhrig.de/difference-between-save-and-export-in-docker/