【问题标题】:How to run several separate Wordpress websites using Docker containers如何使用 Docker 容器运行多个单独的 Wordpress 网站
【发布时间】:2015-06-05 14:00:44
【问题描述】:

我对 Docker 很陌生,目前正在尝试运行一个 Wordpress 网站(只是在我的本地机器上进行测试,而不是实际托管)。我目前有三个容器:一个用于存储我的数据的 linux 发行版,一个 MySQL 容器使用,最后一个是 Wordpress 容器。

我可以成功访问和编辑我的 Wordpress 网站,但我想尝试在不同端口上运行多个网站,但不确定如何操作。我是否必须创建三个全新的容器,或者我可以使用相同的 MySQL 和数据存储容器并简单地创建一个不同的 wordpress 容器?

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: wordpress docker


    【解决方案1】:

    如果您使用官方的 Wordpress 镜像,您可以使用相同的 MySQL 容器。只需为每个 Wordpress 容器提供不同的数据库。您可以使用环境变量为 Wordpress 容器定义数据库,例如:

    docker run --name wordpress1 --link some-mysql:mysql -p 8080:80 -e WORDPRESS_DB_NAME=wordpress1 -d wordpress

    docker run --name wordpress2 --link some-mysql:mysql -p 8081:80 -e WORDPRESS_DB_NAME=wordpress2 -d wordpress

    docker run --name wordpress3 --link some-mysql:mysql -p 8082:80 -e WORDPRESS_DB_NAME=wordpress3 -d wordpress

    【讨论】:

      【解决方案2】:

      只要他们使用相同的数据库,或至少相同的数据库服务器(顺便说一句,不会将您的数据库放入容器中,数据库会写入磁盘并破坏使用容器的目的,除非该容器将永远不要改变位置),你最好为每个创建新的 wordpress 容器,它们可以共享容器的层,所以 3 个 wordpress 容器不会太大,唯一不同的层是网站的代码,所以那是你的最好的选择。

      【讨论】:

      • 为什么您认为容器内的数据库违背了使用容器的目的?据我了解,这是使用容器的关键原因之一。结合为 mysql-server 提供存储的纯数据容器,它是我能想到的最便携的解决方案之一。例如,参见official docs,它甚至有一个托管数据库的容器作为其核心示例。
      • 我相信是因为容器中的文件系统(我所说的默认 fs)是短暂的。如果该容器的PID 1,很可能是数据库守护进程,则存储的数据将丢失。此外,您不能保证 DB 容器始终位于同一主机上,除非您只有一台主机用于 DB 容器。 Flocker 和其他一些工具可以很好地解决这些问题,但独立容器无法解决此问题。
      猜你喜欢
      • 2015-06-29
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 2016-03-16
      • 2018-09-14
      • 1970-01-01
      相关资源
      最近更新 更多