docker部署typecho博客

文章目录

    • 1.安装git
    • 2.安装compose
    • 3.拉取仓库
    • 4.创建目录
    • 5.配置文件修改
    • 6.启动容器
    • 7.修改MYSQL数据库
    • 8.安装成功
    • 9.参考GitHub文档

1.安装git

安装git

yum -y install git

2.安装compose

(docker安装参考:docker基本知识)

  1. 确保已经安装了 Docker:Docker Compose 是 Docker 的一个独立组件,因此在安装 Docker Compose 之前,需要先安装 Docker。你可以按照 Docker 官方文档的指引进行 Docker 的安装。
  2. 下载 Docker Compose 的可执行文件:可以使用以下命令从 Docker 官方 GitHub 存储库下载 Docker Compose 的最新版本:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

添加可执行权限:下载完成后,需要为 Docker Compose 文件添加可执行权限。可以使用以下命令完成:

sudo chmod +x /usr/local/bin/docker-compose

验证安装:运行 docker-compose --version 命令来验证 Docker Compose 是否成功安装。你应该能够看到 Docker Compose 的版本信息。

docker-compose --version

关闭防火墙:

systemctl stop firewalld

3.拉取仓库

#拉取仓库
git clone https://github.com/fukoy/docker-typecho.git
cd docker-typecho[root@chatgpt-test docker-typecho]# pwd
/tmp/docker-typecho

4.创建目录

mkdir -p /data/mysql/data
mkdir -p /data/mysql/logs
mkdir -p /data/mysql/confmv /tmp/docker-typecho/nginx /data/nginx
mv /tmp/docker-typecho/www /data/www

5.配置文件修改

修改docker-compose文件

vim docker-compose.yml 

改成如下配置:

version: '3'services:web:image: fukoy/nginx-php-fpm:php7.4ports:- '8090:80'restart: alwaysvolumes:- /data/www:/usr/share/nginx/typecho/- /data/nginx/conf.d:/etc/nginx/conf.d- /data/nginx/nginx.conf:/etc/nginx/nginx.confdepends_on:- mysqlnetworks:- webmysql:image: mysql:5.7restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=123456  # 替换为你的 MySQL root 密码- MYSQL_DATABASE=typecho       # 替换为你的数据库名称- MYSQL_USER=typecho               # 替换为你的数据库用户- MYSQL_PASSWORD=typecho       # 替换为你的数据库用户密码volumes:- /data/mysql/data:/var/lib/mysql- /data/mysql/logs:/var/log/mysql- /data/mysql/conf:/etc/mysql/conf.dnetworks:- webports:- '3306:3306'networks:web:

此处配置文件中与官方文档不一致,移除了 env_file 指令,并直接在 mysql 服务下添加了 environment 指令来设置环境变量。确保替换 yourpasswordyourdatabaseyouruseryourpassword 为你的实际 MySQL 配置。

在运行 docker-compose up -d 之前,请进行以下步骤:

  1. 确认 /data/nginx/nginx.conf 存在且为文件。
  2. 确认 /data/www/data/nginx/conf.d/data/mysql/data/data/mysql/logs/data/mysql/conf 路径在宿主机上存在并具有正确的权限。
  3. 如果这些目录或文件不存在,请创建它们并确保 Docker 用户有权访问它们。

6.启动容器

启动服务

#在/usr/local/typecho1.2/docker-typecho文件夹下[root@chatgpt-test docker-typecho]# docker-compose up -d
[+] Running 3/3✔ Network docker-typecho_web        Created                                                             1.2s ✔ Container docker-typecho-mysql-1  Started                                                             2.6s ✔ Container docker-typecho-web-1    Started                                                             2.5s 

停止服务

[root@chatgpt-test docker-typecho]# docker-compose down
[+] Running 3/3✔ Container docker-typecho-web-1    Removed                                                            21.2s ✔ Container docker-typecho-mysql-1  Removed                                                            15.4s ✔ Network docker-typecho_web        Removed                                                             2.0s 

查看docker进程

[root@chatgpt-test docker-typecho]# docker ps
CONTAINER ID   IMAGE                        COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
e3a0be6784fa   fukoy/nginx-php-fpm:php7.4   "/start.sh"               34 seconds ago   Up 20 seconds   0.0.0.0:8090->80/tcp, :::8090->80/tcp                  docker-typecho-web-1
4bd75605293f   mariadb                      "docker-entrypoint.s…"   36 seconds ago   Up 27 seconds   3306/tcp, 0.0.0.0:3307->3307/tcp, :::3307->3307/tcp    docker-typecho-mysql-1

重启

#docker-compose重启
docker-compose restart

7.修改MYSQL数据库

在yml文件中我提供了mysql密码,但是在安装后,使用密码始终无法登录,后面尝试密码为空进入了。

1.登录mysql

#进入容器:docker exec -it 容器id /bin/bash[root@chatgpt-test docker-typecho]# docker exec -it 577b95066eec /bin/bash
root@577b95066eec:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.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> 

2.设置 root 用户的密码
在 MySQL 提示符下,使用 ALTER USER 语句为 root 用户设置新密码。请确保你使用了强密码。以下是设置密码为 123456 的命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

3.授予远程访问权限:

为了允许其他设备远程连接到 MySQL 服务器,你需要为 root 用户添加一个允许从任何主机连接的权限。使用以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这里 'root'@'%' 表示 root 用户可以从任何 IP 地址连接。出于安全考虑,通常建议仅允许特定的 IP 地址或地址范围。如果你想限制远程访问的 IP 地址,可以将 % 替换为特定的 IP 地址或地址范围。

4.创建新用户:

在 MySQL 提示符下,创建一个名为 typecho 的新用户,并设置密码(在这里我们使用 123456 作为示例密码,具体的密码按照实际需求 ):

CREATE USER 'typecho'@'%' IDENTIFIED BY '123456';

'typecho'@'%' 表示用户 typecho 可以从任何 IP 地址连接。如果你想限制用户只能从特定的 IP 地址连接,将 % 替换为该 IP 地址。

5.授予权限

赋予 typecho 用户创建数据库和表的权限:

GRANT CREATE ON *.* TO 'typecho'@'%';
GRANT DROP ON *.* TO 'typecho'@'%';
GRANT ALTER ON *.* TO 'typecho'@'%';

这些命令允许用户 typecho 在所有数据库上创建、删除和修改表。如果你想限制这些权限仅适用于特定的数据库,可以将 *.* 替换为 <数据库名>.*

6.刷新权限
为了使权限更改立即生效,需要刷新权限:

FLUSH PRIVILEGES;

7.退出 MySQL
输入 exit 命令退出 MySQL 客户端。

exit

访问:http://192.168.31.223:8090/install.php

在这里插入图片描述
选择Pdo驱动SQLite适配器

默认配置,直接安装
在这里插入图片描述
设置管理员账号信息

在这里插入图片描述

8.安装成功

在这里插入图片描述

博客界面
在这里插入图片描述

结束~

9.参考GitHub文档

https://github.com/fukoy/docker-typecho

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

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

相关文章

爬虫学习-基础(HTTP原理)

目录 一、URL和URI 二、HTTP和HTTPS &#xff08;1&#xff09;HTTP &#xff08;2&#xff09;HTTPS &#xff08;3&#xff09;HTTP与HTTPS区别 &#xff08;4&#xff09;HTTPS对HTTP的改进&#xff1a;双问的身份认证 三、TCP协议 &#xff08;1&#xff09;TCP三次握手…

⭐ Unity 里让 Shader 动画在 Scene 面板被持续刷新

写 Unity Shader的时候&#xff0c;只有播放状态下的 Game 面板能看到Shader 顺畅的动态效果&#xff0c;不方便。 想要带有动态效果的 Shader 在 Scene 面板持续更新动画&#xff0c;只需要打开一个开关就能让 Scene 持续刷新动画了。 感谢大家的观看&#xff0c;您的点赞和关…

在oracle中的scn技术

SCN可以说是Oracle中一个很基础的部分&#xff0c;但同时它也是一个很重要的。它是系统中维持数据的一致性和顺序恢复的重要标志&#xff0c;是数据库非常重要的一种数据结构。 转载&#xff1a;深入剖析 - Oracle SCN机制详细解读 - 知乎 (zhihu.com)https://zhuanlan.zhihu.…

基于运算放大器的电压采集电路

一、运算放大器 运放推导的两个重要概念&#xff1a;虚短、虚断。 1、差分放大器 以差分放大器为例进行推导分析。 虚断–运放的"-“端、”“端的引脚电流接近为0&#xff1b; 根据基尔霍夫电流定律可知&#xff1a;iR1iRF&#xff0c;iR2iR3&#xff1b; iR1(Ui1-(V-…

C语言结构体详解(一)(能看懂文字就能明白系列)

&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;个人主页&#xff1a; 古德猫宁- &#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;…

04.PostgreSQL是如何实现隔离级别的?

PostgreSQL是如何实现隔离级别的&#xff1f; 事务有哪些特性&#xff1f; 事务看起来感觉简单&#xff0c;但是要实现事务必须要遵守 4 个特性&#xff0c;分别如下&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a;一个事务中的所有操作&#xff0c;要么…

Istio新架构揭秘:环境化Mesh

自问世以来&#xff0c;Istio因其使用Sidecar&#xff08;可编程代理与应用容器一同部署&#xff09;而备受认可。这种架构选择使Istio用户能够享受其好处&#xff0c;而无需对其应用进行 drast 改变。这些可编程代理&#xff0c;与应用容器紧密部署在一起&#xff0c;因其能够…

java学习part27线程死锁

基本就是操作系统的内容 138-多线程-线程安全的懒汉式_死锁_ReentrantLock的使用_哔哩哔哩_bilibili

【大模型】更强的 ChatGLM3-6B 来了,开源可商用

【大模型】更强的 ChatGLM3-6B 来了&#xff0c;开源可商用 简介ChatGLM3-6B 环境配置环境搭建安装依赖 代码及模型权重拉取拉取 ChatGLM3-6B拉取 ChatGLM3-6B 模型权重及代码 终端测试网页测试安装 gradio加载模型并启动服务 参考 简介 ChatGLM3-6B ChatGLM3-6B 是 ChatGLM …

基于STM32的四轴飞行器的控制系统(论文+源码)

1.系统设计 本次基于stm32单片机的四轴飞行器控制系统主要包括硬件和软件这两大部分&#xff0c;其中硬件部分是基于单片机的四轴飞行器控制系统实现的基石&#xff0c;其中主要STM32单片机负责整个系统功能的实现&#xff1b;NRF24L01无线模块负责对四轴飞行器的远程控制&…

rtmp 协议详解

1. handshake 1.1 概述 rtmp 连接从握手开始。它包含三个固定大小的块。客户端发送的三个块命名为 C0,C1,C2&#xff1b;服务端发送的三个块命名为 S0,S1,S2。 握手序列&#xff1a; 客户端通过发送 C0 和 C1 消息来启动握手过程。客户端必须接收到 S1 消息&#xff0c;然后…

MS721仪表总线收发器可Pin to Pin兼容TSS721A

MS721 是为 M-Bus 标准&#xff08;EN1434-3&#xff09;的应用而开发的单片收发电路。MS721 接口电路可以适应从站与主站之间的电压差&#xff0c;总线的连接没有极性要求&#xff0c;电路由主站通过总线供电&#xff0c;这样对于从站电池就不会增加额外的负载&#xff0c;同时…

轻量级万物分割SAM模型——MobileSAM安装实测摘要

目录 0、前言1、准备工作安装python环境说明安装说明 运行测试app安装依赖修改代码 2、实际测试效果自带图片测试其它图片测试1其它图片测试2 总结 0、前言 本文将介绍一种轻量级万物分割SAM模型——MobileSAM的安装和实测情况。SAM是meta公司的一种图像分割大模型&#xff0c…

css中的 Grid 布局

flex布局和grid布局区别 flex布局是 一维布局grid布局是二维布局 flex布局示例 grid布局示例 grid 布局初体验 体验地址 <div class"wrapper"><div class"one item">One</div><div class"two item">Two</div&…

Asp.net core WebApi 配置自定义swaggerUI和中文注释,Jwt Bearer配置

1.创建asp.net core webApi项目 默认会引入swagger的Nuget包 <PackageReference Include"Swashbuckle.AspNetCore" Version"6.2.3" />2.配置基本信息和中文注释&#xff08;默认是没有中文注释的&#xff09; 2.1创建一个新的controller using Micr…

开源堡垒机Jumpserver

文章目录 开源堡垒机JumpserverJumpserver介绍安装环境部署安装jumpserver访问jumpserver的web界面 开源堡垒机Jumpserver Jumpserver介绍 Jumpserver 是全球首款完全开源的堡垒机&#xff0c;使用 GNU GPL v2.0 开源协议&#xff0c;是符合 4A 的运维安全审计系统。 Jumpse…

J-LINK J-FLASH 下载STM32单片机程序使用教程

J-LINK J-FLASH 下载STM32单片机程序使用教程 Chapter1 J-LINK J-FLASH 下载STM32单片机程序使用教程1.安装提供的 JLINK驱动程序2. 点击打开 J-Flash V7.223.点击 create a new project.&#xff08;使用后可以在软件菜单File保存这个烧写工程&#xff0c;后续直接打开使用即可…

SHAP(四):NHANES I 生存模型

SHAP&#xff08;四&#xff09;&#xff1a;NHANES I 生存模型 这是一个 Cox 比例风险模型&#xff0c;基于来自 NHANES I 的数据以及来自 NHANES I 流行病学随访研究。 它旨在说明 SHAP 值如何能够以传统上仅由线性模型提供的清晰度解释 XGBoost 模型。 我们在数据中看到有趣…

JOSEF约瑟时间继电器ARTD-DC110V-2H2D 0.25-2.5s导轨安装

ARTD系列断电延时继电器&#xff1a; ARTD-220VDC-1H1D断电延时继电器&#xff1b;ARTD-220VDC-2H断电延时继电器&#xff1b; ARTD-220VDC-2H2D断电延时继电器&#xff1b;ARTD-220VDC-4H断电延时继电器&#xff1b; ARTD-110VDC-1H1D断电延时继电器&#xff1b;ARTD-110VD…

SSM框架(四):SSM整合 案例 + 异常处理器 +拦截器

文章目录 一、整合流程图1.1 Spring整合Mybatis1.2 Spring整合SpringMVC 二、表现层数据封装2.1 问题引出2.2 统一返回结果数据格式 代码设计 三、异常处理器3.1 概述3.2 异常处理方案 四、前端五、拦截器5.1 概念5.2 入门案例5.3 拦截器参数5.4 拦截器链 一、整合流程图 1.1 S…