01 使用docker搭建wordpress博客网站

news2025/1/23 22:34:20

文章目录

  • 1. 前言
    • 1.1 容器技术思维导图
    • 1.2 wordpress 网络架构图
  • 2. 拉取镜像
  • 3. 搭建博客网站
    • 3.1 启动MariaDB
    • 3.2 运行应用服务器 WordPress
    • 3.3 使用nginx 做反向代理
    • 3.4 检查容器状态
  • 4. 登录博客配置
  • 5 查看数据库

1. 前言

基于之前学习kubernetes 比较乱,打算重新学习下Kubernetes ,这里先简单回忆下docker 以及用docker 搭建一个博客网站

1.1 容器技术思维导图

这里说下Dockerfile ARG和ENV 的用法:

相同点:都是定义变量
不同点:
ENV 定义的变量只能在构建过程中使用
ARG 定义的变量同时可以在容器中使用

在这里插入图片描述

1.2 wordpress 网络架构图

在这里插入图片描述

2. 拉取镜像

docker pull wordpress:5
docker pull mariadb:10
docker pull nginx:alpine

3. 搭建博客网站

3.1 启动MariaDB

我们先来运行 MariaDB。根据说明文档,需要配置“MARIADB_DATABASE”等几个环境变量,用 --env 参数来指定启动时的数据库、用户名和密码,这里我指定数据库是“db”,用户名是“wp”,密码是“123”,管理员密码(root password)也是“123”。

docker run -d --rm \
    --env MARIADB_DATABASE=db \
    --env MARIADB_USER=wp \
    --env MARIADB_PASSWORD=123 \
    --env MARIADB_ROOT_PASSWORD=123 \
    mariadb:10

启动之后,我们还可以使用 docker exec 命令,执行数据库的客户端工具“mysql”,验证数据库是否正常运行:

 docker exec -it 00b mysql -u wp -p
 Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.10.2-MariaDB-1:10.10.2+maria~ubu2204 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>

  • 查看容器网络
    在这里插入图片描述

3.2 运行应用服务器 WordPress

它也要用 --env 参数来指定一些环境变量才能连接到 MariaDB,注意“WORDPRESS_DB_HOST”必须是 MariaDB 的 IP 地址,否则会无法连接数据库:


docker run -d --rm \
    --env WORDPRESS_DB_HOST=172.17.0.2 \
    --env WORDPRESS_DB_USER=wp \
    --env WORDPRESS_DB_PASSWORD=123 \
    --env WORDPRESS_DB_NAME=db \
    wordpress:5

3.3 使用nginx 做反向代理

WordPress 容器在启动的时候并没有使用 -p 参数映射端口号,所以外界是不能直接访问的,我们需要在前面配一个 Nginx 反向代理,把请求转发给 WordPress 的 80 端口。

配置 Nginx 反向代理必须要知道 WordPress 的 IP 地址,同样可以用 docker inspect 命令查看,如果没有什么意外的话它应该是“172.17.0.3”,所以我们就能够写出如下的配置文件(Nginx 的用法可参考其他资料)

server {
  listen 80;
  default_type text/html;

  location / {
      proxy_http_version 1.1;
      proxy_set_header Host $host;
      proxy_pass http://172.17.0.3;
  }
}

有了这个配置文件,最关键的一步就来了,我们需要用 -p 参数把本机的端口映射到 Nginx 容器内部的 80 端口,再用 -v 参数把配置文件挂载到 Nginx 的“conf.d”目录下。这样,Nginx 就会使用刚才编写好的配置文件,在 80 端口上监听 HTTP 请求,再转发到 WordPress 应用:

docker run -d --rm \
    -p 80:80 \
    -v `pwd`/wp.conf:/etc/nginx/conf.d/default.conf \
    nginx:alpine

3.4 检查容器状态

docker ps

在这里插入图片描述

4. 登录博客配置

打开浏览器,输入本机的“127.0.0.1”或者是虚拟机的 IP 地址(我这里是“http://192.168.221.130”),就可以看到 WordPress 的界面:
在这里插入图片描述
在这里插入图片描述

5 查看数据库

可以看到,WordPress 已经在数据库里新建了很多的表,这就证明我们的容器化的 WordPress 网站搭建成功。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/40277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记 十九:由浅入深的随机森林模型之分类

随机森林学习内容1. 集成学习2.sklearn中的集成算法2.1 sklearn中的集成算法模块ensemble2.2 RandomForestClassifier2.2.1 参数2.2.2 n_estimators2.2.3 random_state2.2.4 bootstrap & oob_score2.3 随机森林的重要接口2.4 Bonus(装袋法的必要条件&#xff09…

【指针详解】(上)看一遍就会❗❗❗家人们冲❗

前言 ❤️ 铁汁们大家好,欢迎大家来到出小月的博客里, 🤗🤗🤗之前呢,我分享了C语言的小游戏“扫雷”。。。。今天呢,给大家分享指针篇,,希望大家看完我这篇文章都能够“涨…

Java Tomcat内存马——Servlet内存马

目录 前言: (一)Servlet的创建 1、实现javax.servlet.Servlet接口的方式 2、继承GenericServlet类创建Servlet 3、继承了HttpServlet进行创建 (二)分析注入方式 代码分析 (三)payload 1、StandardC…

阿里云OSS、用户认证与就诊人

oss 模块搭建与实现 这里采用的方式是通过后端传 oss&#xff0c;可以对比下 谷粒商城里面的&#xff0c;从后端拿上传凭证&#xff0c;然后前端直传的方式 <dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId> <…

数字化管理门店| 甜品店管理系统

对不少女生来说&#xff0c;甜品店绝对算是经常去的地方&#xff0c;尤其出新品的时候&#xff0c;就如奶茶店一样在排队&#xff0c;在武汉一家足球场的旁边&#xff0c;有一家“甜如箭丘”品牌门店&#xff0c;整体环境装修的非常附有文艺感&#xff0c;明亮的店堂&#xff0…

第7章 网络优化与正则化

系列文章目录 第1章 绪论 第2章 机器学习概述 第3章 线性模型 第4章 前馈神经网络 第5章 卷积神经网络 第6章 循环神经网络 第7章 网络优化与正则化 第8章 注意力机制与外部记忆 第9章 无监督学习 第10章 模型独立的学习方式 第11章 概率图模型 第12章 深度信念网络 第13章 深…

[Flask]Pycharm+Flask零基础项目搭建入门

Flask在Python web开发中虽然热度低于Django但是也存在不小的市场空间&#xff0c;能作为一个主流web开发框架之一也不是浪得虚名&#xff0c;还是有不少干货在里面的&#xff0c;Flask也具备了不少的自身优势&#xff0c;在后面的认识中我们再逐步深入了解 今天我们就来带大家…

池式结构:对象池(Object Pool)

本文是对 http://gameprogrammingpatterns.com/object-pool.html 的原创翻译。部分地方使用意译&#xff0c;不准确的地方请各位指证。 一、对象池的意义 通过重新使用固定的池式结构中的对象&#xff0c;来代替单独分配和释放对象&#xff0c;可以提高程序的性能和内存使用。…

裸 VSCode 必备插件

VSCode 轻量、开源&#xff0c;新鲜下载的 VSCode 可谓是身无长物、一穷二白&#xff0c;连个项目管理的功能都没有。 身轻如燕的 VSCode 对于后端开发说可能有点幼稚&#xff0c;但对于前端来说刚刚好&#xff0c;毕竟不需要搞什么 Docker、数据库等等&#xff0c;装俩 VSCod…

02 本机搭建kubernetes学习环境kubemini

文章目录1. 什么是容器编排&#xff1f;2. 什么是 Kubernetes&#xff1f;2.1 Kubernetes 到底能够为我们做什么呢&#xff1f;3. 什么是 minikube4. 如何搭建 minikube 环境4.1 minikube 安装4.2 kubectl 安装5. 验证实验节点5.1 kubectl 使用5.2 在kubernetes 运行第一个应用…

第148篇 笔记-DeFi

定义&#xff1a;去中心化金融(Decentralized finance)&#xff0c;简称“DeFi”&#xff0c;是指基于区块链的无许可和透明金融服务生态系统。 DeFi是区块链、智能合约和预言机带来的最重大进步之一。DeFi一开始是在去中心化基础设施上重新创建通用金融工具的运动&#xff0c…

循环玩具游戏

一 问题描述 有个名为 Looploop 的玩具&#xff0c;这个玩具有 N 个元素&#xff0c;以循环方式排列。有一个箭头指向其中一个元素&#xff0c;还有两个预设参数 k1 和 k 2。 上图显示了一个由 6 个元素组成的循环。假设预设参数 k13&#xff0c;k2 4&#xff0c;对这个玩具做…

【谷粒商城 - k8s、devOps专栏】

一、K8s快速入门 其他项目的K8S笔记&#xff1a;https://blog.csdn.net/hancoder/category_11140481.html 1&#xff09;简介 kubernetes简称k8s。是用于自动部署&#xff0c;扩展和管理容器化应用程序的开源系统。 部署方式的进化&#xff1a; [外链图片转存失败,源站可能…

STM32系列(HAL库) ——定时器编码器/正交解码模式

STM32定时器的正交解码模式多用于检测电机的编码器脉冲数做闭环控制&#xff0c;如PID。本文简单介绍一下定时器在Cubemx如何配置以及程序引用到的API函数。 一、前期准备 1、硬件&#xff1a; STM32C8T6最小系统板USB-TTL串口模块ST-Link下载器 2、软件&#xff1a; keil5…

Linux

1.入门概述 我们为什么要学习Linux linux诞生了这么多年&#xff0c;以前还喊着如何能取代windows系统&#xff0c;现在这个口号已经小多了&#xff0c;任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样&#xff0c;想想而已基本不可能&#x…

斐波那契散列和hashMap实践

斐波那契散列和hashMap实践 适合的场景&#xff1a;抽奖(游戏、轮盘、活动促销等等) 如果有不对的地方&#xff0c;欢迎指正&#xff01; HashMap实现数据散列&#xff1a; 配置项目&#xff0c;引入pom.xml: <dependency><groupId>com.alibaba</groupId&g…

排序算法-冒泡排序

基本思路 遍历给定的数组&#xff0c;从左往右&#xff0c;两两比较&#xff0c;小的放在左边&#xff0c;大的放在右边&#xff0c;遍历完成&#xff0c;数组有序。 先来看一个冒泡排序的过程&#xff1a; 给定数组&#xff1a;[5,3,2,1,4] 排序结果&#xff1a;[1,2,3,4,5…

Sha1,Sha256 哈希(摘要)处理

具体参考&#xff1a;Sha1,Sha256哈希&#xff08;摘要&#xff09;在线处理工具

显示今天的年、月、日日期、时间的数据处理timetuple()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 显示今天的年、月、日 日期、时间的数据处理 timetuple() [太阳]选择题 对下面描述错误的选项为&#xff1f; import datetime dtdatetime.date.today() print("【显示】dt",dt) p…

Redis最全详解(三)——SpringBoot整合2种方式

SpringBoot整合Redis 常用 api 介绍 有两个 redis 模板&#xff1a;RedisTemplate 和 StringRedisTemplate。我们不使用 RedisTemplate&#xff0c;RedisTemplate 提供给我们操作对象&#xff0c;操作对象的时候&#xff0c;我们通常是以 json 格式存储&#xff0c;但在存储的…