主机Nginx + Docker WordPress Mysql搭建的示例
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍了主机Nginx + Docker WordPress Mysql搭建的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一
千家信息网最后更新 2025年12月01日主机Nginx + Docker WordPress Mysql搭建的示例
这篇文章主要介绍了主机Nginx + Docker WordPress Mysql搭建的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
环境
Linux 3.10.0-693.el7.x86_64
Docker version 18.09.0
docker-compose version 1.17.0
安装
安装 docker 所需依赖
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装 docker-ce
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ sudo yum install docker-ce $ sudo systemctl start docker $ docker --version $ sudo docker run hello-world
安装 docker-compose
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose$ sudo chmod +x /usr/bin/docker-compose$ docker-compose --version
编写 docker-compose.yml
$ mkdir ./blog$ cd blog$ sudo vim docker-compose.yml
version: '3'services: db: image: mysql:5.7 volumes: # 数据卷,映射本地文件夹 - db_data:/var/lib/mysql ports: # 如果不写端口映射的话,外部无法连接该mysql(下方WordPress连接没问题) - "3306:3306" restart: always environment: MYSQL_ROOT_PASSWORD: xxx MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: # 依赖上方的 db service - db image: wordpress:latest volumes: - wp_site:/var/www/html ports: - "8000:80" restart: always privileged: true environment: # 可以直接使用 上方 service 名 + 端口来获得链接 WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress # 定义域名 WORDPRESS_CONFIG_EXTRA: "define('WP_HOME','https://blog.amoyiki.com'); define('WP_SITEURL','https://blog.amoyiki.com');"volumes: db_data: wp_site:运行容器
# 启动$ sudo docker-compose up -d# 关闭 $ sudo docker-compose down
现在可以用 http://ip:port 来访问。如果发现无法访问,可以 查看容器日志寻找错误
$ sudo docker-compose ps Name Command State Ports blog_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcpblog_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8000->80/tcp # 主要后面的 WordPress 是服务的名字 这和 docker 查看日志使用容器名不同$ sudo docker-compose logs -f --tail=10 wordpress $ sudo docker-compose logs -f --tail=10 db
使用主机 Nginx 反代 docker wordpress
nginx 的配置文件如下(省略不相干内容)
user root; # 这是由于 docker 容器内 WordPress 文件用户为 www-dataserver { listen 80; server_name *.amoyiki.com; return 301 https://$host$request_uri; }upstream wordpress-workhorse { server 127.0.0.1:8000 fail_timeout=10s;}server { server_name blog.amoyiki.com; listen 443 ssl; ssl on; ssl_certificate /ssl/path/fullchain.pem; ssl_certificate_key /ssl/path/privkey.pem; access_log /var/log/nginx/access.log main; # 主机中 WordPress 数据卷位置 root /var/lib/docker/volumes/blog_wp_site/_data; location / { proxy_pass http://wordpress-workhorse; 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 https; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires 7d; access_log off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }}错误合集
nginx error Permission denied
"/var/lib/docker/volumes/myblog_wp_site/_data/wp-includes/css/dashicons.min.css" failed (13: Permission denied)
之前我 nginx.conf user 使用的是默认的 nobody 无法读取 docker 中 wp 的 www-data 这个用户组数据,所以直接将 nginx 用户提到 root,这个之后可以优化
感谢你能够认真阅读完这篇文章,希望小编分享的"主机Nginx + Docker WordPress Mysql搭建的示例"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
主机
容器
篇文章
数据
文件
用户
示例
日志
端口
错误
不同
不相干
价值
位置
兴趣
内容
同时
名字
域名
文件夹
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
郑州金融网络安全论坛回放
数据库技术交流群
软考数据库中级
网吧里的电脑怎么连接服务器
区块链网络安全试点
管理ip登录服务器
直销软件开发哪里好
n11连接宝塔数据库
2021国家网络安全周主题征文
软件开发 单干 团队
苏州华坤互联网科技有限公司
崇明区一站式软件开发定制价格
数据库开发专业有哪些
java聊天室数据库
数据库查询伴生
网络安全 网络文化 定义
敏捷软件开发结对编程
康保软件开发技术
数据库管理和维护内容
戴尔服务器指示灯大全
网络安全风险名称
数据库基础及jdbc
电脑编程是软件开发吗
网络安全课堂常态
国家网络安全法制宣传周
数据库技术与应用微课版教材
网络安全入门的书
网络安全检测评估流程
php 操作数据库的函数
在软件上建立下载服务器