问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何使用 Docker Compose 创建 LAMP 环境?

创作时间:
作者:
@小白创作中心

如何使用 Docker Compose 创建 LAMP 环境?

引用
CSDN
1.
https://m.blog.csdn.net/xiaochong0302/article/details/144416167

随着容器化技术的不断发展,Docker已经成为部署复杂环境的主流选择。本文将详细介绍如何使用Docker Compose创建LAMP环境,并通过自定义Dockerfile来扩展PHP环境,安装额外的模块和Composer包管理器。

必备条件

  • Docker: 用于在容器中开发、交付和运行应用程序的平台。
  • Docker-Compose: 用于定义和运行多容器 Docker 应用程序的工具。

您可以通过在终端中运行

docker -v
docker-compose -v

来检查这些工具的安装。如果您还没有安装它们,请访问 Docker 官方网站获取安装说明。

Step 1: Create a Docker-Compose File

首先,在项目目录中创建一个docker-compose.yml文件,此文件至关重要。

version: '3'
services:
  web:
    build: .
    container_name: apache-php
    ports:
- "80:80"
    volumes:
- ./www:/var/www/html
  db:
    image: mysql:8
    container_name: mysql-server
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secure_password
      MYSQL_DATABASE: mydb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: password
    ports:
- "3306:3306"
    volumes:
- db_data:/var/lib/mysql
volumes:
  db_data:

该配置详细说明了两个主要服务:web用于 Apache 和 PHP,db用于 MySQL。注意web下的build: .指令,指示 Docker 应该在当前目录下使用一个Dockerfile来构建这个服务。

Step 2: Customize PHP with a Dockerfile

要合并其他 PHP 模块和 Composer,请在与 docker-composer .yml 相同的目录下创建一个 Dockerfile。这个 Dockerfile 将指导 Docker 如何准备你的自定义 PHP 环境。

FROM php:8.3-apache
# Install additional PHP modules
RUN docker-php-ext-install pdo_mysql mysqli
# Install Composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
    php -r "unlink('composer-setup.php');"
# Enable Apache mod_rewrite
RUN a2enmod rewrite

这个 Dockerfile 扩展了php:8.3-apache镜像,为数据库交互添加了 pdo mysql 和 mysqli 扩展,并全局安装了 Composer 管理器。

Step 3: Building and Running Your Containers

打开终端,切换到 docker-compose.yml 所在的项目目录,执行如下命令

docker-compose up -d

'-d选项以分离模式运行容器,释放终端。Docker-compose 将从 Docker Hub 提取必要的镜像,创建定义的服务,并设置指定的网络和数据卷。

Step 4: Accessing Your LAMP Stack

容器启动并运行后,您可以通过在浏览器中访问http//localhost来访问 Apache Web 服务。

要与 MySQL 数据库交互,可以使用以下命令访问 MySQL 命令行

docker-compose exec db mysql -uroot -proot

请用您在 docker-compose.yml 文件中定义的用户名和密码替换 root。

Step 5: Managing Your LAMP Stack

Docker-Compose 服务管理常见命令如下:

  • 停止容器:
docker-compose down
  • 重启容器:
docker-compose up -d
  • 重构服务:
docker-compose up -d --build

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号