使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

2023年 10月 12日 69.4k 0

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

标题:使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

随着容器技术的发展,越来越多的开发者开始使用Docker来构建和管理应用程序的环境。在这篇文章中,我们将以一个PHP应用程序为例,演示如何使用Docker Compose、Nginx和MariaDB来扩展容器化的环境。

Docker Compose是Docker官方提供的工具,用于定义和管理多个容器的组合。Nginx是一个高性能的HTTP服务器和反向代理服务器,而MariaDB则是一个开源的关系型数据库管理系统。

首先,我们需要创建一个名为docker-compose.yml的文件,用于定义和配置所需的容器。在这个文件中,我们将使用三个服务:web、db和phpmyadmin。

version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./app:/var/www/html
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- php
networks:
- app-network

db:
image: mariadb:latest
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=app_database
- MYSQL_USER=app_user
- MYSQL_PASSWORD=password
volumes:
- ./data:/var/lib/mysql
networks:
- app-network

phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
links:
- db:db
ports:
- "8080:80"
environment:
- PMA_HOST=db
- MYSQL_ROOT_PASSWORD=password
networks:
- app-network

networks:
app-network:
driver: bridge

登录后复制

在这个文件中,我们定义了三个服务。web服务使用Nginx镜像,并将主机的80端口映射到容器的80端口。volumes指定了将主机上的./app目录映射到容器的/var/www/html目录(主机上的应用程序代码将放在./app目录中),以及将主机上的./config/nginx目录映射到容器的/etc/nginx/conf.d目录中(用于配置Nginx)。depends_on指定了web服务依赖于php服务的启动。networks定义了一个名为app-network的网络,用于将这三个服务连接到同一个网络中。

db服务使用MariaDB镜像,并通过environment指定了一些环境变量,如root密码、数据库名称、用户和密码。volumes将主机上的./data目录映射到容器的/var/lib/mysql目录中(用于数据持久化)。

phpmyadmin服务使用phpmyadmin镜像,并通过links指定了与db服务的连接,以及通过ports指定了将主机的8080端口映射到容器的80端口。environment指定了部分环境变量,如数据库主机和root密码。

接下来,我们需要在主机上创建相应的目录和文件。在终端中,执行以下命令:

mkdir app
mkdir config/nginx
mkdir data

登录后复制

然后,将应用程序的代码放在app目录中,并创建一个名为default.conf的Nginx配置文件,放在config/nginx目录中。这个配置文件将会被映射到容器的/etc/nginx/conf.d目录中。

现在,我们可以启动容器了。在终端中,执行以下命令:

docker-compose up -d

登录后复制

该命令将会创建和启动所有的容器,并在后台运行。你可以使用docker ps命令来查看所有正在运行的容器。

最后,通过浏览器访问http://localhost,就可以看到PHP应用程序在容器中的运行结果了。你也可以通过http://localhost:8080访问phpMyAdmin来管理MariaDB数据库。

到这里,我们已成功地使用Docker Compose、Nginx和MariaDB实现了PHP应用程序的容器扩展。通过Docker Compose,我们可以轻松地定义和管理多个容器,而Nginx和MariaDB则为我们提供了高效和可靠的服务。

希望本文能够帮助到你,让你更好地理解和应用Docker技术。祝编程愉快!

以上就是使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论