ubuntu

ubuntu lamp容器化部署实践

小樊
47
2025-07-15 11:07:05
栏目: 智能运维

在Ubuntu上使用Docker容器化部署LAMP(Linux, Apache, MySQL, PHP)环境是一个相对简单且高效的方法。以下是详细的步骤指南:

1. 安装Docker

首先,确保你的Ubuntu系统上已经安装了Docker。可以通过以下命令来安装Docker:

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

2. 创建Dockerfile

在你的应用目录中创建一个名为 Dockerfile 的文件,这个文件定义了如何构建你的Docker镜像。以下是一个基本的Dockerfile示例:

# 使用官方的Ubuntu镜像作为基础镜像
FROM ubuntu:18.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive

# 安装Apache、MySQL和PHP
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    apache2 \
    mysql-server \
    php \
    php-mysql \
    php-xml \
    php-gd \
    php-mbstring \
    php-json

# 安装PHP7.4
RUN apt-get update && \
    apt-get install -y php7.4 \
    php7.4-mysql \
    php7.4-xml \
    php7.4-gd \
    php7.4-mbstring \
    php7.4-json

# 安装PHP扩展
RUN docker-php-ext-install pdo pdo_mysql

# 安装Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# 配置Apache
RUN a2enmod rewrite

# 配置MySQL
RUN sed -i 's/^bind-address/#bind-address/' /etc/mysql/my.cnf

# 创建Apache和MySQL的运行用户
RUN useradd -m -d /var/www -s /bin/bash www-data

# 配置Apache的主目录和文档根
RUN mkdir -p /var/www/html
RUN chown -R www-data:www-data /var/www/html

# 暴露Apache的80端口
EXPOSE 80

# 启动Apache和MySQL
CMD ["apache2-foreground"]

3. 构建Docker镜像

在包含Dockerfile的目录中,运行以下命令来构建你的Docker镜像:

docker build -t lamp .

4. 运行Docker容器

使用以下命令启动一个包含LAMP环境的Docker容器:

docker run -d -p 80:80 -p 3306:3306 --name lampp lampp

这个命令将在后台启动一个Docker容器,并将容器的80端口映射到宿主机的80端口,3306端口映射到宿主机的3306端口。同时,容器被命名为 lampp

5. 验证部署

在浏览器中输入 http://localhost,你应该能看到Apache的默认欢迎页面。此外,你还可以通过 http://localhost/phpmyadmin 访问MySQL的phpMyAdmin管理界面。

6. 自动化部署(可选)

你可以使用Ansible进行自动化部署。以下是一个简单的示例脚本:

#!/bin/bash
# Update package list
sudo apt update
# Install LAMP stack
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql
# Restart Apache to apply changes
sudo systemctl restart apache2
# Set MySQL root password
sudo mysql_secure_installation

将上述脚本保存为 install_lamp.sh,并使用以下命令赋予执行权限并运行:

chmod +x install_lamp.sh
./install_lamp.sh

通过以上步骤,你可以在Ubuntu上成功使用Docker容器化部署LAMP环境。根据你的需求,可以选择使用 lampp 镜像或自定义的Dockerfile来构建镜像。

0
看了该问题的人还看了