教程栏目

joomla中文网出品的官方教程

  公司的项目需要走虚拟化的方式,所以就将joomla项目逐步的迁移到docker中。部署环境的问题以前都是其他同事搞定的,我只负责代码部分,这一次心血来潮,想自己弄,结果一天的工作都被一行docker rm  给弄没了,教训惨重,特以此为戒。

事件原由

  对于joomla已经很熟悉,对于docker,之前了解过,基本上就把他当做一个轻量级的虚拟机来用,感觉这个理解对我来说是够用的。实际上操作docker我的经验也没有到1个月。

   在本次事件中,我把joomla的代码和数据库都放在一个docker容器中,这样不需要另外再配置额外的数据库,只需要启动docker 容器,就可以跑起一个joomlal了。对于不熟悉joomla,但会一点docker的朋友来说,这种方式非常的方便。在快下班的时候,启动另外一个docker容器的时候提示端口被占用了,而这个端口就是我运行joomla的那个容器在使用中。  当时脑袋还算清醒,就认为关掉joomla这个容器就可以解决问题,可能是我对docker理解不深刻,潜意识就把这个任务和linux关掉一个进程是一样的,然后我就是执行了docker rm joomla 这个命令。 当时没有认识到问题的严重性,认为换一个端口,重新跑一个容器就行了,但实际上发现新的容器内容完全被清空了,我一天的工作都白做了。

  在接下来的两个小时,搜索能否恢复被删除的容器数据,虽然网上有类似的教程,但实际上这种操作成功的可能性不大,我只能在docker的volum目录下找到一些上传的附件,但其他的数据库文件是完全找不到的。

错误原因

   对docker的操作不熟悉,对一些关键的命令理解不透彻。

解决方案

   通过上面的事情,也向我暴露了一个问题,docker 容器太容易删除了,这是非常非常危险的信号,在使用docker的时候一定要注意。

   docker对这种情况也提供了解决方案,那就是挂载。在允许docker容器的时候,我们应该将一些数据库文件,配置目录,关键的目录挂载到本地宿主机上,这样即使不小心删除掉了容器。也还是可以恢复的。

 

 

 

 

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前

第1章 经验分享

第2章 专题教程

第3章 扩展推荐

第13章 扩展更新日志