更改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附加到您的容器,并进行所需的更改。
并祈祷没有任何问题与您的容器,所以你不会失去你的数据。
- 获取警告:nginx:无法打开监督/ ok:文件不存在
- 端口不会在swarm master中使用“docker stack deploy”发布
- SSH服务器不接受连接
- 在docker图像上运行具有KeyCloak的Wild Sw群
- CrashLoopBackOff在kubernetes的spark集群中:nohup:不能执行' – ':没有这样的文件或目录
- 如何在debian wheezy docker镜像上安装pgrep / pkill
- 用docker-compose回退环境variables
- Wildfly:AMQ214016:无法从nattednetworking上的客户端创buildnetty连接java.nio.channels.UnresolvedAddressException
- 从pythonlogin到logstash