使用Docker部署WordPress外贸站:入门的教程
前言:为什么外贸站推荐用 Docker 部署
传统的 WordPress 安装需要手动配置 LAMP 或 LNMP 环境,版本冲突、迁移困难、环境不一致是新手常遇到的麻烦。
而对于外贸业务网站,稳定性、快速迁移和多站点管理尤其重要。Docker 容器化部署能将整个 WordPress 运行环境打包,做到“一次配置,到处运行”,同时隔离应用与系统,降低运维成本。
本文带你从零开始,在一台云服务器上用 Docker 部署一个可用于外贸业务的 WordPress 站点。
第一步:准备好服务器和 Docker 环境
你只需要一台 Linux 服务器(推荐 CentOS 7+ 或 Ubuntu 20.04+)。
如果是新手,建议选择宝塔面板或一键脚本安装 Docker,但更推荐手动安装,能更清楚底层逻辑。
1. 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl start docker
sudo systemctl enable docker
验证安装:docker --version 出现版本号即成功。
2. 安装 Docker Compose(用于编排多个容器)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
注意:如果服务器在国内,GitHub 下载慢,可先用镜像源或直接使用包管理器安装(如 apt install docker-compose)。
第二步:编写 docker-compose.yml 一键部署 WordPress + MySQL
在服务器上创建一个项目目录,例如 /data/wordpress,然后新建 docker-compose.yml 文件:
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: wp-mysql
volumes:
- ./mysql_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppassword
restart: always
wordpress:
image: wordpress:latest
container_name: wp-site
ports:
- "8080:80"
depends_on:
- mysql
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppassword
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp_content:/var/www/html/wp-content
restart: always
字段说明:
mysql容器存储数据库文件到本地mysql_data目录,防止容器删除后数据丢失。wordpress容器映射宿主机的8080端口到容器内的80端口,访问http://服务器IP:8080即可看到安装界面。wp_content卷用于存放插件、主题、上传文件,方便后续迁移。
执行部署:
cd /data/wordpress
docker-compose up -d
等待几分钟,查看容器状态:docker-compose ps,确保两个容器都是 Up 状态。
第三步:配置域名和 SSL(外贸站必备)
外贸网站必须使用 HTTPS 且绑定自定义域名,才能获得客户信任。
这里以 Nginx 反向代理 + Let's Encrypt 为例。
1. 安装 Nginx(如果未安装)
sudo apt install nginx # Ubuntu
sudo yum install nginx # CentOS
2. 配置反向代理
在 /etc/nginx/conf.d/ 下新建 外贸站域名.conf 文件(例如 example.com.conf):
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3. 申请 SSL 证书
使用 Certbot 工具自动申请并配置:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按提示输入邮箱并同意条款,Certbot 会自动修改 Nginx 配置,重启后即可 HTTPS 访问。
注意:如果你使用宝塔面板,直接在面板中创建网站,反向代理目标地址填 http://127.0.0.1:8080,然后一键申请 SSL 更方便。
4. 修改 WordPress 站点地址
安装完成后,进入 WordPress 后台(https://yourdomain.com/wp-admin),在“设置 -> 常规”中把“WordPress 地址(URL)”和“站点地址(URL)”都改为 https://yourdomain.com。
否则页面资源加载会出错。
第四步:避坑指南与常见问题
Q1:容器启动后访问 8080 端口显示“连接被拒绝”或“无法访问”
检查服务器安全组/防火墙是否放行了 8080 端口(或 80/443)。
如果是云厂商,需在控制台添加入站规则。
同时检查容器日志:docker-compose logs wordpress。
Q2:MySQL 连接失败“ERROR 2002 (HY000) Can't connect to local MySQL server”
这是新手常见问题:WordPress 容器连接数据库时使用了 localhost 而不是 mysql 服务名。
请务必在 docker-compose.yml 中设置环境变量 WORDPRESS_DB_HOST: mysql:3306,而不是 127.0.0.1。
Q3:外贸网站需要多语言支持,如何部署?
Docker 部署的 WordPress 可以直接安装 Polylang 或 WPML 插件。
建议在 wp_content 卷中提前下载好常用插件,或通过后台在线安装。
容器重启后插件和数据不受影响。
Q4:如何备份和迁移?
备份只需打包 mysql_data 和 wp_content 两个目录,以及导出 MySQL 数据(或直接复制整个 mysql_data 目录)。
迁移到新服务器时,拷贝这些目录到对应路径,再执行 docker-compose up -d 即可。
第五步:验证站点是否正常运行
访问 https://yourdomain.com,如果看到 WordPress 安装完成后的首页或已配置的前端页面,说明部署成功。
还可以用以下命令确认容器运行状态:
docker-compose ps
curl -I http://localhost:8080 # 检查本地响应
建议打开浏览器开发者工具的“网络”标签,确认所有静态资源(图片、CSS、JS)均通过 HTTPS 加载,且没有跨域警告。
总结
通过 Docker 部署 WordPress 外贸站,你不仅能隔离环境、简化迁移,还能轻松扩展多站点。
本文从服务器准备到域名 SSL 配置都给出了可执行步骤,遇到报错时优先回看“避坑指南”中的高频问题。
如果你的业务需要更高的性能,未来还可以引入 Redis 缓存或 CDN,这些都可以在 Docker 体系中无缝集成。
现在就去试试吧,不出半小时你就能拥有一个专业的外贸 WordPress 站点。