当前位置: 首页 > 知识库问答 >
问题:

Docker commit未将我的更改保存到映像

漆雕修德
2023-03-14

我是docker世界的新手:我正处于一个可以部署docker容器并做一些工作的阶段。

试图进入下一个级别保存我的更改并将我的容器/映像移动到另一台PC/服务器。

目前,我在Windows10上使用docker,但我确实可以访问Ubuntu16.04服务器来测试我的工作。

这就是我被困住的地方:我在Docker上部署了Wordpress和MariaDB图像。
我的WP运行得很好,我安装了几个主题,创建了几个带有图像的页面。

在这一点上,我喜欢保存我的工作,并将它发送给我的朋友谁将部署我的图像,并在这个相同的WordPress上做进一步的工作。

我在网上读到的内容是:我应该运行docker commit命令以.tar格式保存和创建我的docker映像,然后将这个映像文件(.tar)发送给我的朋友。他将在我的文件上运行docker load-i,将其作为图像加载到他的docker中,然后从它创建容器,该容器将为他提供我在WordPress上的所有工作。

为了澄清一下,我同时提交了Wordpress和Mariadb容器。
我没有挂载任何外部卷,所以所有的工作都保存在容器中。

我确实记得在docker设置中对驱动器C和D打上复选标记,但我不知道这是否与卷有关。

在提交和移动.tar文件过程中没有任何错误。一旦我的朋友从我提交的图像创建了他的容器,他就得到了干净的Wordpress(就像从wp设置页面开始的Wordpress的新安装)。

我注意到的另一件事是,我创建的图像与我拉出的原始图像具有相同的文件大小。当我运行Docker Images时,我看到我的图像是420MB,Wordpress图像也是420MB。

我想我的图像应该稍微大一点,因为我已经安装了主题,插件和上传的图像到WordPress。至少它应该比原始图像多添加3到5 MB。请帮帮忙。谢谢你。

运行Docker system DF给出了这一点。

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              5                   3                   1.259GB             785.9MB (62%)
Containers          3                   3                   58.96kB             0B (0%)
Local Volumes       2                   2                   311.4MB             0B (0%)
Build Cache         0                   0                   0B                  0B

共有1个答案

郎曜文
2023-03-14

如图所示,确保提交一个正在运行的容器(以避免任何数据清理)

docker commit CONTAINER_ID yourImage

docker commit命令之后,您可以使用docker save将您的图像保存在tar中,并使用docker load将其导入回来,如下所示。

 类似资料:
  • 问题内容: 我需要在ASP .Net应用程序中实现“未保存的更改”提示。如果用户修改了Web表单上的控件,并试图在保存之前导航离开,则将出现提示,警告他们尚未保存更改,并为他们提供取消并保留在当前页面上的选项。如果用户未触摸任何控件,则不应显示该提示。 理想情况下,我想用JavaScript实现此功能,但是在我开始滚动自己的代码之前,是否有任何现有的框架或推荐的设计模式来实现这一目标?理想情况下,

  • 问题内容: 我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做 我努力了 而且我也尝试过 最后两个给我以下错误 问题答案: 我已经弄清楚了如何对数据库进行更改,下面是一些

  • 我创建了一个TableView,并为每个TableColumn注册了属性。内部数据的编辑可以很好地反映在TableView中。 然而,对于ListView,情况就不同了。除非我关闭框架并再次打开它,否则更改不会立即显示。

  • git add / git commit / git diff / git stash / .gitignore “保存”这个概念在 Git 等版本控制系统和 Word 等文本编辑应用中不太一样。传统软件里的“保存”在 Git 里被叫做“提交”(commit)。 我们常说的的保存可以理解成在文件系统中覆盖一个已有的文件或者创建一个新的文件。而在 Git 中,提交这个操作作用于若干个文件和目录。 在

  • 问题内容: 那可能吗?例如,用户将新的项目/元素添加到arraylist中(bufferedreader进程),并且肯定会发生更改。我的问题是,即使用户多次对arraylist进行更改,也可能永久关闭该列表,即使他们关闭程序并重新打开它也一直存在。 注意:不得使用.txt 很抱歉提出这样的问题,但我对此很好奇。谢谢! 问题答案: 程序停止时,将释放它使用的所有内存,包括ArrayList。除了不关

  • 我将旧数据作为CSV存储在Azure DataLake Gen2存储帐户中。我可以连接到这个,并使用数据记录卡进行查询。我有一个要求,一旦某些记录的保留期到期,或者如果GDPR“被遗忘的权利”需要应用于数据,我就要删除这些记录。 使用Delta,我可以将CSV加载到Delta表中,并使用SQL查找和删除所需的行,但保存这些更改的最佳方法是什么?理想情况下,返回到原始文件,以便从原始文件中删除数据。