2016-09-23 86 views
1

使用Docker相当新颖..Docker:保存 - 不产生输出

我为Oracle 11g Full提取了一张映像。创建一个数据库并将一个应用程序安装到容器中。

一旦配置正确,我提交了导致15GB图像的容器。

测试了一个新的图像容器,一切工作正常,Oracle服务等自动启动,然后我只是附加并运行应用程序...一切都很好。

我要上传这个到服务器,所以我的目的的方法是:

1)保存容器
2)上传压缩包到服务器
3)装载容器

然而,当我运行下面的命令:

sudo docker save --output ~/etlf_961_meta.tar etlf/informatica9.6.1:latest

它只是挂起和不产生输出。

的方法是有效的,但似乎没有文件并且没有活动:

T20 chris # ps aux | grep "docker save" root 26179 0.0 0.0 91928 5000 pts/14 S+ 16:36 0:00 sudo docker save --output /home/chris/etlf_961_meta.tar etlf/informatica9.6.1:latest root 26201 0.0 0.0 127404 14664 pts/14 Sl+ 16:36 0:00 docker save --output /home/chris/etlf_961_meta.tar etlf/informatica9.6.1:latest root 26277 0.0 0.0 14232 980 pts/0 S+ 16:36 0:00 grep --color=auto docker save

如果我使用exportimport过程运行正常,一个15GB的图象被生成,并且可以被导入,但是我失去了所有的ENV和CMD元数据。

谁能提醒:

1)如何解决save命令,实际出口集装箱

2)如何恢复或附加ENV/CMD元数据(..the dockerfile)?到导出/导入的图像?

非常感谢

回答

0

既然你是新的泊坞窗,我想提出一些事情,可能使你的生活更轻松:

我犯这就造成了一个15GB的图像容器。

commit通常不建议用于标准工作流程。它不是真正可重复的。我会建议使用FROM <oracle image>创建一个Dockerfile,并在Dockerfile中完成这项工作。

如果您有大型数据集,您可能需要管理卷或主机绑定挂载(又称卷挂载)。

我要上传这个到服务器,

这样做的推荐的方法是使用docker push推到注册表中。

它只是挂起并没有输出。

这可能是它很慢?您还可以检查docker守护进程日志文件以查看是否有任何警告。

如何将ENV/CMD元数据(..the dockerfile?)恢复或附加到导出/导入的图像?

我不认为这是可能的。

+0

感谢您的回复。重现图像的配置不是必需的。初始配置相当复杂,因此无法单独通过dockerfile完成所有配置。提交已配置的映像对此用例更为合适。 dockerd不会在保存命令上产生任何日志输出。 我看看推而不是 –