我是Docker所有这些东西的新手。我已经阅读了一些网站,每个应用程序运行时应该存在一个图像。这意味着对于运行wordpress我至少需要2个图像:一个用于MySQL,另一个用于Wordpress(和apache)。事实上,官方的Wordpress docker镜像不包含MySQL,需要外部连接。
但我发现了一些图像,其中MySQL嵌入在wordpress和Apache之间的图像上。这为您提供了更便携的映像,因为您只需要在任何服务器上部署它。但是如果在系统中已经运行了docker的图像,那么你就是在浪费资源。
所以,我的问题是,是否应该在与MySQL相同的图像上运行Wordpress。如果没有,应该如何将MySQL上的所有数据移动到不同的位置。
答案 0 :(得分:0)
标准的方法是每个服务都有一个容器,因此你将有一个容器用于MySQL,另一个容器用于Apache / PHP和应用程序。
如果您要使用官方MySQL容器,并且想要保留数据,您只需将主机中的卷挂载到mysql容器中的datadir:
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
这将在主机的/my/own/datadir
路径中创建一个包含MySQL所有内容的文件夹。
您可以在该链接中找到有关该内容的更多信息:
https://github.com/docker-library/docs/tree/master/mysql#where-to-store-data