新上8卡RTX 5090 限时特惠 Read more

Docker 容器化部署 Web 应用实战 - 云数方舟

Docker 容器化部署 Web 应用实战

Docker 容器化部署 Web 应用实战——云数方舟(YunArk) 香港 / 美国 节点环境标准化

在多台 香港独立服务器美国独立服务器 之间迁移网站时,“本地能跑,服务器报错”是运维人员的噩梦。Docker 通过容器化技术,将应用及其依赖打包成一个镜像,实现了环境的一致性、部署的快速性和资源的隔离性。本文以部署 LNMP(Linux + Nginx + MySQL + PHP)环境为例,讲解如何在云数方舟节点上标准化部署 Web 应用。

一、为什么要在独立服务器上使用 Docker?

  • 环境一致性:消除“在我这能跑”的问题,开发、测试、生产环境完全一致。
  • 快速回滚:镜像版本化管理,一旦新版本出问题,秒级回退到上一个镜像。
  • 资源隔离:不同站点运行在独立容器中,互不影响,避免一个站点中毒拖垮整台服务器。
  • 弹性迁移:结合 菲律宾独立服务器 或其他节点做容灾时,直接迁移镜像即可。

二、编写 Dockerfile 定制运行环境

以 PHP 网站为例,在项目根目录创建 Dockerfile

FROM php:8.2-fpm
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install pdo pdo_mysql gd
WORKDIR /var/www/html
COPY . .

这个文件定义了基于 PHP 8.2、安装了 MySQL 扩展和 GD 库的运行时环境。

三、使用 docker-compose 编排多容器应用

Web 应用通常需要 Nginx、PHP、MySQL 协同工作。创建 docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - php
  php:
    build: .
    volumes:
      - ./html:/var/www/html
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: 强密码
    volumes:
      - ./mysql/data:/var/lib/mysql

一条命令 docker-compose up -d,即可在 美国洛杉矶独立服务器 上启动整套环境。

四、数据持久化与备份策略

容器是无状态的,数据必须存储在宿主机上。

  • 代码持久化:通过 Volume 挂载,将宿主机的代码目录映射到容器内。
  • 数据库持久化:将 MySQL 的数据目录 /var/lib/mysql 映射到宿主机(如 ./mysql/data)。
  • 备份:直接打包宿主机上的数据目录,或通过 docker exec 进入容器执行 mysqldump

五、结合云数方舟节点的实战建议

  1. 香港节点:作为面向大陆用户的接入层,Docker 中主要运行 Nginx 和 PHP-FPM,处理动态请求。
  2. 美国节点:作为后端处理层,Docker 中运行耗时任务(如视频转码、批量推理),利用 美国大带宽服务器 的优势。
  3. 安全:Docker 容器虽隔离,但宿主机仍需配合 DDoS 防护 和防火墙策略,避免端口暴露风险。

📌 查看云数方舟容器化部署方案:
云数方舟官网香港独立服务器(接入层)美国洛杉矶独立服务器(处理层)美国大带宽服务器(数据传输)DDoS 防护解决方案

本文由 云数方舟(YunArk) 原创发布,转载请注明出处。

云数方舟
  • 3216651636
  • support@yunark.cn