Dockerize 您的 PHP 和 MySQL 应用程序:多容器应用程序分步指南

dockerize 您的 php 和 mysql 应用程序:多容器应用程序分步指南

在现代软件开发领域,容器化已成为高效部署和可扩展性的基石。 docker 可以轻松地将应用程序及其依赖项打包到可移植容器中。在本博客中,我们将引导您使用 docker compose 创建多容器 php 和 mysql 应用程序。

为什么对 php 和 mysql 使用 docker?

一致性:在开发和生产的所有阶段都在同一环境中运行您的应用程序。
隔离:将 php 和 mysql 等服务保存在单独的容器中,以实现模块化和可维护的设置。
易于扩展:随着应用程序的增长,轻松添加或删除容器。

项目结构

您的项目目录应如下所示:

project/│├── php-app/│   ├── dockerfile│   └── index.php│└── docker-compose.yml

docker 撰写文件

这是 docker-compose.yml 文件:

version: '3.8'services:  php-app:    build: ./php-app  # builds the php app docker image from the ./php-app directory    ports:      - "8080:80"  # maps port 8080 on the host to port 80 in the container    depends_on:      - mysql  # ensures mysql starts before the php app  mysql:    image: mysql:8.0  # uses the official mysql image    ports:      - "3306:3306"  # maps port 3306 on the host to port 3306 in the container    environment:      mysql_root_password: root  # root password for mysql      mysql_database: mydb  # initial database to create    volumes:      - mysql-data:/var/lib/mysql  # persists mysql data in a named volumevolumes:  mysql-data:  # declares a named volume for mysql data persistence

php应用程序代码

index.php 文件连接到 mysql 容器:

setattribute(pdo::attr_errmode, pdo::errmode_exception);    echo "connected to mysql successfully!";} catch (pdoexception $e) {    echo "connection failed: " . $e->getmessage();}?>

php 应用程序的 dockerfile

dockerfile 构建具有所需依赖项的 php 容器:

# use the official php imagefrom php:8.2-apache# install pdo mysql extensionrun docker-php-ext-install pdo pdo_mysql# set the working directoryworkdir /var/www/html# copy the application codecopy index.php .# expose port 80expose 80

构建和运行的步骤

创建目录结构

将 dockerfile 和 index.php 放在 php-app 文件夹中。将 docker-compose.yml 放在项目根文件夹中。

构建并启动容器在项目目录中打开终端并运行:

docker-compose up --build

访问 php 应用程序 在浏览器中访问 http://localhost:8080。如果一切设置正确,您应该看到:

Connected to MySQL successfully!

验证 mysql 数据库

使用 mysql 客户端或 mysql workbench。
使用以下命令连接到 localhost:3306:
用户名:root
密码:root
验证数据库 mydb 是否已创建。

此设置的主要特点

服务依赖管理:depends_on 确保 mysql 在 php 应用程序之前启动。
数据持久化:mysql-data卷存储mysql数据,防止容器重启后丢失。
端口映射:通过映射到主机的端口轻松访问服务。

扩展设置

将更多服务(如 nginxredis)添加到 compose 文件中。
使用 .env 文件来管理敏感配置。
使用 docker compose 的缩放选项来水平缩放服务。

结论

通过此设置,您已经使用 docker compose 构建了一个可扩展的模块化 php 和 mysql 应用程序。容器化可简化环境管理并为您的应用程序云部署做好准备。无论您是初学者还是经验丰富的开发人员,docker 都是现代应用程序开发不可或缺的工具。

准备好将您的设置提升到新的水平了吗?尝试将其与 ci/cd 管道或 kubernetes 集成以实现生产级环境。

立即学习“PHP免费学习笔记(深入)”;

以上就是Dockerize 您的 PHP 和 MySQL 应用程序:多容器应用程序分步指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1251865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 23:31:10
下一篇 2025年12月9日 23:31:25

相关推荐

发表回复

登录后才能评论
关注微信