如何使用持久数据运行Prestashop docker容器?

时间:2016-06-02 10:10:53

标签: docker prestashop volume

在许多docker示例中我都缺少一些东西,那就是持久性数据。如果我得出结论,每个停止的容器都会丢失它的数据,我是对的吗?

我使用它的内部数据库运行了这个Prestashop图像: https://hub.docker.com/r/prestashop/prestashop/

您只需运行docker run -ti --name some-prestashop -p 8080:80 -d prestashop/prestashop

那么你有你的演示,但不是很实用。 首先,我需要挂钩外部MySQL容器,但是如果我的服务器重新启动,那么它也会丢失所有数据。

那么将要添加到prestashop容器的所有模块和主题呢?

它与Volumes有关,但我不清楚如何正确映射所有主机卷以及通常选择通向主机的路径。 / opt / prestashop呃什么?

1 个答案:

答案 0 :(得分:2)

首先,我对PrestaShop没有任何经验。这是一个示例,您可以将其用于每个docker容器(您希望从中保存数据)。 使用新版本的docker(1.11),可以很容易地“保留”您的数据。 首先创建您的命名卷:

docker volume create --name prestashop-volume

您将在/var/lib/docker/volumes中看到此卷: 的Prestashop体积

创建命名卷容器后,可以将容器与卷容器连接:

docker run -ti --name some-prestashop -p 8080:80 -d -v prestashop-volume:/path/to/what/you/want/to/persist :prestashop/prestashop

(当你真的想坚持一切时,我认为你可以使用路径:/

现在,您可以在数据库中执行所需操作。 当您的容器关闭或删除容器时,指定的卷仍然存在,您可以使用命名卷重新连接容器。

为了让您更轻松,您可以创建一个cron-job,创建/var/lib/docker/volumes/prestashop-volume/内容的.tar 当真的一切都消失了,你可以通过重新创建命名卷来恢复你的卷,然后解压缩你的.tar文件。