发布于2026-07-08 阅读(0)
扫一扫,手机访问
在Ubuntu上借助Docker把PHP应用容器化,整个过程其实并不复杂,只要理清几个关键步骤,你也能快速上手。下面就把这套流程拆开来聊聊。

先确认你的Ubuntu系统里有没有装好Docker。如果还没装,不用慌,直接敲下面两行命令就能搞定:
sudo apt update
sudo apt install docker.io
进入PHP项目根目录,新建一个名叫 Dockerfile 的文件——这个文件就是整个镜像的“配方”,决定了你的PHP环境长什么样。下面是一个比较典型的配置:
# 使用官方的PHP基础镜像
FROM php:7.4-fpm
# 安装必要的扩展
RUN apt-get update && apt-get install -y \
libpng-dev libjpeg62-turbo-dev libpq-dev libzip-dev zip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd pdo_mysql zip opcache
# 设置工作目录
WORKDIR /var/www/html
# 复制项目文件到容器中
COPY . /var/www/html
# 安装Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 设置权限
RUN chown -R www-data:www-data /var/www/html
# 暴露端口
EXPOSE 9000
# 启动PHP-FPM服务
CMD ["php-fpm"]
这里用到了PHP 7.4的FPM镜像,同时安装了GD、PDO_MySQL、ZIP等常用扩展,并且顺带把Composer也装上了。你可以根据项目实际需求增减扩展。
在项目根目录下运行下面这个命令,Docker就会按照刚才写的配方一步步构建出镜像:
docker build -t my-php-app .
镜像名(my-php-app)可以自己改,但记得后面启动容器时要用同一个名字。
镜像构建完成后,直接启动一个容器:
docker run -d -p 9000:9000 --name my-php-container my-php-app
这个命令会把主机的9000端口映射到容器的9000端口,容器名就叫 my-php-container。启动后,PHP-FPM就在后台跑起来了。
如果你的应用需要处理HTTP请求,通常会在前面加一个Nginx反向袋里。下面是一步一步怎么配:
sudo apt install nginx
编辑默认站点配置文件(一般路径是 /etc/nginx/sites-a vailable/default),加入类似下面这样的内容:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
注意这里 fastcgi_pass 指向的是主机上的PHP-FPM socket,如果你想用容器内的PHP-FPM,则需要改成 fastcgi_pass 127.0.0.1:9000;,并确保容器端口映射正确。
sudo systemctl restart nginx
最后一步,打开浏览器,输入服务器的IP地址或域名,如果一切顺利,你的PHP应用应该已经正常显示了。整个流程走下来,你会发现Docker的容器化部署其实比想象中要清爽——环境隔离、依赖明确,迁移和扩展都方便得多。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8