Docker 可以把应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何机器上,也可以实现虚拟化。
在Linux主机上部署Docker并配置个人网站
建议先在本机简单部署wordpress进行了解大致流程更方便学习
Docker的基础学习可以看B站[技术爬爬虾]
安装Docker
curl -fsSL https://get.docker.com -o install-docker.sh
bash install-docker.sh
下载完后查看
root@sanopll-virtual-machine:/tmp# docker -v
Docker version 28.5.2, build ecc6942
显示版本号,下载成功
部署博客,需要用到三种镜像:
wordpress,nginx,mysql
首先创建一个docker网络让容器之间可以互相通信
docker network create wp-net
创建数据卷,便于持久化
docker volume create wordpress_db_data
docker volume create wordpress_app_data
docker volume create nginx_config
一,启动MySQL容器,(run启动时未下载镜像会自动下载)
docker run -d \
--name wordpress_db \
--network wp-net \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \ #用户自定
-e MYSQL_PASSWORD=password \ #密码自定
-e MYSQL_ROOT_PASSWORD=root \#root密码
-v wordpress_db_data:/var/lib/mysql \
-v var/db-backups:/backups \
mysql
用户名密码可以自己定,这里仅参考
二,启用wordpress容器
docker run -d \
--name wordpress \
--network wp-net \
-e WORDPRESS_DB_HOST=wordpress_db:3306 \
-e WORDPRESS_DB_USER=wordpress \
-e WORDPRESS_DB_PASSWORD=password \
-e WORDPRESS_DB_NAME=wordpress \
-v wordpress_app_data:/var/www/html \
wordpress:6.5-php8.2-fpm
三,创建nginx配置文件并启用nginx容器
# 创建配置目录
mkdir -p /var/wordpress-docker/nginx
# 创建nginx配置文件
# 复制即可,也可以根据自己的方案修改
cat > /var/wordpress-docker/nginx/wordpress.conf << 'EOF'
server {
listen 80;
server_name _;
root /var/www/html;
index index.php index.html index.htm;
# 安全头
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
# 静态文件缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
try_files $uri =404;
}
# WordPress永久链接重写
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP处理
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress_app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
# 安全设置
location ~ /\.ht {
deny all;
}
location ~ /wp-config.php {
deny all;
}
}
EOF
启动nginx容器
docker run -d \
--name wordpress_nginx \
--network wp-net \
-p 80:80 \ #端口自定,这里是80端口
-v wordpress_app_data:/var/www/html \
-v ~/wordpress-docker/nginx/wordpress.conf:/etc/nginx/conf.d/default.conf \
nginx:alpine
四,对MySQL配置用于wordpress连接
创建wordpress数据库并创建用于登录的用户
-- 创建数据库
CREATE DATABASE wordpress;
-- 创建新用户并授予完全权限
CREATE USER 'wordpress'@'%' IDENTIFIED BY 'Wordpress-pass';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%' WITH GRANT OPTION;
-- 刷新
FLUSH PRIVILEGES;
五,测试配置是否成功并进行wordpress管理页面配置
重启所有容器刷新配置,以免有些配置不加载
docker restart wordpress wordpress_nginx wordpress_db
本机为linux系统的vps,在个人主机上访问vps的80端口
若出现wordpress配置页面,则成功
接下来按照标准流程填写即可
反之,若出现以下问题:
数据库无法连接:
检查wordpress容器中的wp-config.php,查看是否正确配置了连接
检查mysql是否正确的创建了可远程访问的用户
页面无法访问:
大概率是nginx配置问题,检查docker logs wordpress_nginx,查看日志,里面有详细记录
如果你下载的镜像非php-fpm,而是默认镜像,可以考虑检查是否为apache服务器,若是修改nginx配置代理到apache
- THE END -
最后修改:2025年11月17日
非特殊说明,本博所有文章均为博主原创。
test123
感觉写的不错,我是作者 🤓
这只是测试评论