更改Docker容器

我有一个在Docker 实例中运行的Wordpress安装。 我遇到了一个电子邮件的问题,这可能是由于sendmail丢失。 如果确实需要将sendmail添加到容器中,那么执行此操作的目的是什么? 我已经看到了lxc的黑客攻击,但总是这样说,或者至less暗示这不在Docker应该如何工作的意图之内。 我决定在我的Wordpress网站上使用Docker,因为我已经安装了一个运行着HTTP服务的系统,基本上把所有东西(Apache,PHP,MySQL等)分开的想法真的吸引了我。 然后,我可以将整个容器备份,并根据需要将其移动到另一个系统。

为了尽可能直接说明我的问题,修改正在运行的容器的方法最适合于Docker的预期devise? 我应该如上所述通过lxc-attach尝试特别的bash提示吗? 还是有更适当的方法,如使容器成为一个新的图像(保存我所有的WP数据)和修改图像,然后重新启动容器?

很长的回答:

我build议改变你的项目结构的方式。

在你的容器中有一个数据库对于本地开发是可以的 – 当你不关心你每次重启你的容器时所做的改变是否会丢失。

目前,如果您的容器由于某种原因死亡,或者您因任何原因需要重新启动,则您的数据将会丢失。

使用nsenter (下面提到)附加到您的运行容器,当你需要:

  • 在主机上安装mysql
  • 附加到你正在运行的容器,做一个你的数据库的mysqldump
  • 从您的容器scp您的.sql文件到您的主机
  • 将数据库导入主机上的mysql
  • 将您的Wordpress网站指向主机数据库

我看我的Docker项目是否正确设置的方式是这样的:

如果你不能自动回到目前你的容器的位置,那么你做错了什么

简短的回答:

使用nsenter附加到您的容器,并进行所需的更改。

并祈祷没有任何问题与您的容器,所以你不会失去你的数据。