首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker: PHP、Apache和MySQL在同一个容器/同一个Docker文件中

问Docker: PHP、Apache和MySQL在同一个容器/同一个Docker文件中
EN

Stack Overflow用户
提问于 2019-10-22 14:44:57
回答 3查看 2.1K关注 0票数 2

我需要一个图像与所有3个元素组合在一个容器。但是无论我在谷歌上搜索还是在Docker Hub上搜索,我都没有在同一个容器/Docker文件中找到保存PHP、Apache和MySQL的图片。

有没有人能建议一下创建所需容器的方法?

我也很感谢你解释为什么这种图像/容器不可用?

顺便说一句,我自己无法想象在不同的容器中分离MySQL服务器是可行的,因为DB本身并没有保存在容器中,而容器中只有MySQL服务器。因此,即使在同一个容器中的MySQL也与DB本身完全解耦。

EN

回答 3

Stack Overflow用户

发布于 2019-10-22 14:56:29

早上好,鲍勃-12345

docker containers的目的是获得更灵活的架构。

我将从我的工作生活中做一个例子:

你有一个在php7.0上运行的应用程序,现在你想测试它是否还能与php7.3一起工作,所以你只需停止php7.0容器,启动7.3容器,并检查你的应用程序。或者您想检查它是否仍然可以与ngnx和php-fpm等一起使用。

因此,由于版本问题,不建议将due服务器、编码层和持久层放在一个容器中。

如果你还想把这些都放在一起的话。我建议你从一个普通的debian/ubuntu/whatEverDistroYouPrefer开始构建,就像你在普通的and服务器上做的那样。

例如:

代码语言:javascript
复制
FROM debian:latest
RUN apt-get update \ 
&& apt-get install -y --no-install-recommends \ 
&& http \
&& php \ 
...

我希望我能帮助你:)

票数 5
EN

Stack Overflow用户

发布于 2019-10-22 15:01:13

将PHP和Apache放在同一个容器中是一个好主意--从实际意义上讲,PHP只有在与when服务器结合使用时才真正有用(一般而言)。但对于MySQL来说就不是这样了。如果数据库服务器和卷与应用程序代码捆绑在一起,那么围绕可伸缩性、冗余性和可用性的现实问题是无法解决的。

假设你已经将你的"LAMP Image“部署到生产环境中,并且你的网站变得非常流行--很酷!您正在接收大量流量,并且您需要运行应用程序的多个实例。您还需要一个数据库的读取副本。

如果所有内容都捆绑到一个映像中,您将如何做到这一点?您必须运行与应用程序数量相同的MySQL实例数量。

票数 2
EN

Stack Overflow用户

发布于 2020-12-30 22:05:55

较晚的我回答较早的我的问题。

需要将PHP和MySQL放在同一个容器中的原因是希望使它们成为可移植的包。

在后来的我看来,解决方案不是将两者组合在同一个容器中,而是在同一个Docker Compose docker-compose.yml下,它可以轻松地连接3个容器(Apache,PHP,MySQL)。

Docker Compose是Docker containers orchestrator。它可以启动、停止、删除、重新创建容器包。因此,它使包可移植。

快速Google search for docker-compose php apache mysql展示了许多有用的docker-compose.yml示例。This只是其中之一。

一旦你习惯了Docker / Compose,这将变得更加简单和有趣。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58498471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档