这些步骤操作起来简单,但是走错了路就是坑,留个笔记,后续可以查询。
docker安装
本人用的centos环境,首先要更新docker,不要用系统自带的,可能版本是旧的,有些命令运行不了。
安装docker参考链接:https://docs.docker.com/engine/install/centos/
1 2 3 4 5 6 7
| sudo yum remove docker sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo docker run hello-world
|
也可以安装一下docker-compose:https://docs.docker.com/compose/install
1 2 3
| sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
|
unbuntu版本安装docker,更多参考:https://docs.docker.com/engine/install/ubuntu/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| apt update apt upgrade -y curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo tee /etc/docker/daemon.json <<EOF { "builder": { "gc": { "defaultKeepStorage": "100GB", "enabled": true } }, "data-root": "/home/redhat/MyDocker", "experimental": false, "registry-mirrors": [ "https://dockerproxy.net", "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.unsee.tech", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn", "https://docker.chenby.cn", "http://mirror.azure.cn", "https://dockerpull.org", "https://dockerhub.icu", "https://hub.rat.dev" ] } EOF cat /etc/docker/daemon.json systemctl daemon-reload systemctl restart docker systemctl enable docker --now docker info docker compose version
|
安装wordpress
参考链接:https://registry.hub.docker.com/_/wordpress
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| vim docker-compose.yml
services: db: image: mysql:8.0.27 command: --default-authentication-plugin=mysql_native_password volumes: - ./db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: ${DB_PASS:?Set DB_PASS} MYSQL_DATABASE: ${DB_NAME:-wordpress} MYSQL_USER: ${DB_USER:-wordpress} MYSQL_PASSWORD: ${DB_PASS:?Set DB_PASS}
wordpress: image: wordpress:latest depends_on: - db volumes: - ./wp_data:/var/www/html - ./php.ini:/usr/local/etc/php/conf.d/uploads.ini ports: - "${WP_PORT:-2233}:80" restart: always environment: WORDPRESS_DB_HOST: ${DB_HOST:-db} WORDPRESS_DB_NAME: ${DB_NAME:-wordpress} WORDPRESS_DB_USER: ${DB_USER:-wordpress} WORDPRESS_DB_PASSWORD: ${DB_PASS:?Set DB_PASS}
volumes: db_data: wp_data:
vim .env
DB_NAME=wordpress DB_USER=wordpress DB_PASS=wordpress DB_HOST=db
WP_PORT=2233
|
配置完成并启动wordpress就可以在浏览器访问wordpress了。
关于docker pull下载慢的问题。
1 2 3 4 5 6 7 8 9 10
| vim /etc/docker/daemon.json
{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn" ] } service docker restart
|
配置https
参考文档:https://github.com/nephen/nginx-web-overseas/blob/main/DOCKERHUB_DEPLOY.md
1 2 3 4 5 6
| mkdir nginx-proxy && cd nginx-proxy curl -o docker-compose.yml https://raw.githubusercontent.com/nephen/nginx-web-overseas/main/docker-compose.hub.yml curl -o .env.example https://raw.githubusercontent.com/nephen/nginx-web-overseas/main/.env.example cp .env.example .env nano .env docker compose up -d
|
wordpress配置
找到/var/www/html/wp-content/themes目录替换主题,找到宿主机目录/var/lib/docker/volumes/wordpress_wordpress/_data/替换就行。
容器时区不对的解决方法:docker cp /usr/share/zoneinfo/Asia/Shanghai c177fc4749c0:/etc/localtime
Docker 环境下的 MySQL + WordPress,用于将localhost:2233 和 localhost 统一替换为 railogroup.com
这是最优方案,尤其适合你当前的 WordPress 项目(ACF、Elementor、WooCommerce 都大量使用序列化数据)。
1. 进入 WordPress 容器
找到 WordPress 容器名,例如 wp_app
1
| docker exec -it wp_app bash
|
2. 确认 WP-CLI 是否存在
若不存在,可临时安装(一次性):
1 2 3 4
| curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar php wp-cli.phar --info chmod +x wp-cli.phar mv wp-cli.phar /usr/local/bin/wp
|
3. 执行搜索替换(核心命令)
① 先替换 localhost:2233
1 2 3 4 5 6
| wp search-replace 'localhost:2233' 'railogroup.com' \ --all-tables \ --precise \ --recurse-objects \ --skip-columns=guid \ --allow-root
|
② 再替换 localhost
1 2 3 4 5 6
| wp search-replace 'localhost' 'railogroup.com' \ --all-tables \ --precise \ --recurse-objects \ --skip-columns=guid \ --allow-root
|
说明:
--recurse-objects:安全处理 ACF / Elementor / WooCommerce 序列化数据
--skip-columns=guid:避免 GUID 被破坏(推荐做法)
--all-tables:包含 wp_postmeta、wp_options、自定义表等
4. 同步更新站点 URL(必要)
1 2
| wp option update siteurl 'https://railogroup.com' wp option update home 'https://railogroup.com'
|
5. 清缓存
插件
https://github.com/bestony/wx-subscribe