文章目录
- 1.安装git
- 2.安装compose
- 3.拉取仓库
- 4.创建目录
- 5.配置文件修改
- 6.启动容器
- 7.修改MYSQL数据库
- 8.安装成功
- 9.参考GitHub文档
1.安装git
安装git
yum -y install git
2.安装compose
(docker安装参考:docker基本知识)
- 确保已经安装了 Docker:Docker Compose 是 Docker 的一个独立组件,因此在安装 Docker Compose 之前,需要先安装 Docker。你可以按照 Docker 官方文档的指引进行 Docker 的安装。
- 下载 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
指令来设置环境变量。确保替换 yourpassword
、yourdatabase
、youruser
和 yourpassword
为你的实际 MySQL 配置。
在运行 docker-compose up -d
之前,请进行以下步骤:
- 确认
/data/nginx/nginx.conf
存在且为文件。 - 确认
/data/www
、/data/nginx/conf.d
、/data/mysql/data
、/data/mysql/logs
和/data/mysql/conf
路径在宿主机上存在并具有正确的权限。 - 如果这些目录或文件不存在,请创建它们并确保 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