我需要一个图像与所有3个元素组合在一个容器。但是无论我在谷歌上搜索还是在Docker Hub上搜索,我都没有在同一个容器/Docker文件中找到保存PHP、Apache和MySQL的图片。
有没有人能建议一下创建所需容器的方法?
我也很感谢你解释为什么这种图像/容器不可用?
顺便说一句,我自己无法想象在不同的容器中分离MySQL服务器是可行的,因为DB本身并没有保存在容器中,而容器中只有MySQL服务器。因此,即使在同一个容器中的MySQL也与DB本身完全解耦。
发布于 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服务器上做的那样。
例如:
FROM debian:latest
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
&& http \
&& php \
...我希望我能帮助你:)
发布于 2019-10-22 15:01:13
将PHP和Apache放在同一个容器中是一个好主意--从实际意义上讲,PHP只有在与when服务器结合使用时才真正有用(一般而言)。但对于MySQL来说就不是这样了。如果数据库服务器和卷与应用程序代码捆绑在一起,那么围绕可伸缩性、冗余性和可用性的现实问题是无法解决的。
假设你已经将你的"LAMP Image“部署到生产环境中,并且你的网站变得非常流行--很酷!您正在接收大量流量,并且您需要运行应用程序的多个实例。您还需要一个数据库的读取副本。
如果所有内容都捆绑到一个映像中,您将如何做到这一点?您必须运行与应用程序数量相同的MySQL实例数量。
发布于 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,这将变得更加简单和有趣。
https://stackoverflow.com/questions/58498471
复制相似问题