如何 运行 Prestashop docker 具有持久数据的容器?
Howto run a Prestashop docker container with persistent data?
我在许多 docker 示例中遗漏了一些东西,那就是持久数据。如果我断定每个停止的容器都会丢失它的数据,我是对的吗?
我得到了这张 Prestashop 图片 运行 它是内部数据库:
https://hub.docker.com/r/prestashop/prestashop/
你刚刚运行docker run -ti --name some-prestashop -p 8080:80 -d prestashop/prestashop
那么你得到了你的演示,但不是很实用。
首先,我需要挂接一个外部 MySQL 容器,但是如果我的服务器重新启动,那个容器也会丢失所有数据。
那么将要添加到 prestashop 容器中的所有模块和主题呢?
它与卷有关,但我不清楚如何正确映射所有主机卷以及通常选择主机的路径。 /opt/prestashop 嗯?
首先,我对 PrestaShop 没有任何经验。这是一个示例,您可以将其用于每个 docker 容器(您希望从中保存数据)。
使用新版本的 docker (1.11) 可以很容易地 'persist' 您的数据。
首先创建您的命名卷:
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您的.tar-文件来恢复您的卷。
我在许多 docker 示例中遗漏了一些东西,那就是持久数据。如果我断定每个停止的容器都会丢失它的数据,我是对的吗?
我得到了这张 Prestashop 图片 运行 它是内部数据库: https://hub.docker.com/r/prestashop/prestashop/
你刚刚运行docker run -ti --name some-prestashop -p 8080:80 -d prestashop/prestashop
那么你得到了你的演示,但不是很实用。 首先,我需要挂接一个外部 MySQL 容器,但是如果我的服务器重新启动,那个容器也会丢失所有数据。
那么将要添加到 prestashop 容器中的所有模块和主题呢?
它与卷有关,但我不清楚如何正确映射所有主机卷以及通常选择主机的路径。 /opt/prestashop 嗯?
首先,我对 PrestaShop 没有任何经验。这是一个示例,您可以将其用于每个 docker 容器(您希望从中保存数据)。 使用新版本的 docker (1.11) 可以很容易地 'persist' 您的数据。 首先创建您的命名卷:
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您的.tar-文件来恢复您的卷。