1. Docker Compose安装Typecho博客教程
1.1. 1. 环境要求
- 服务器:建议选择非大陆服务器
- 系统:Debian 10或其他Linux系统
- 域名:需要提前解析到服务器
- 基础软件:Docker、Docker-compose
可选:
- Nginx Proxy Manager用于反向代理
- aapanel(宝塔面板海外版)
1.2. 2. 安装步骤
1.2.1. 2.1 准备工作
# 切换root用户
sudo -i
# 更新系统
apt update -y
# 安装必要工具
apt install wget curl sudo vim git1.2.2. 2.2 创建项目目录结构
mkdir -p /root/data/docker_data/typecho
cd /root/data/docker_data/typecho
1.2.3. 2.3 配置文件创建
1.2.3.1. MySQL配置(mysql.env)
cd /root/data/docker_data/typecho
nano mysql.env
MYSQL_ROOT_PASSWORD=root_pass
MYSQL_DATABASE=typecho
MYSQL_USER=username
MYSQL_PASSWORD=password
1.2.3.2. PHP配置(php/Dockerfile)
cd /root/data/docker_data/typecho
mkdir php
cd php
nano Dockerfile
FROM php:7.3.29-fpm
RUN apt-get update \
&& docker-php-ext-install pdo_mysql \
&& echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini \
&& echo "date.timezone = PRC" >> /usr/local/etc/php/conf.d/php.ini
1.2.3.3. Nginx配置(nginx/default.conf)
cd /root/data/docker_data/typecho
mkdir nginx
cd nginx
nano default.conf
server {
listen 80 default_server;
root /var/www/html;
index index.php;
access_log /var/log/nginx/typecho_access.log main;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
location / {
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
location ~ \.php(.*)$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
1.2.4. 2.4 下载Typecho源码
cd /root/data/docker_data/typecho
wget https://github.com/typecho/typecho/releases/download/v1.2.0/typecho.zip
apt install zip -y
unzip typecho.zip
1.2.5. 2.5 Docker Compose配置
创建docker-compose.yml:
cd /root/data/docker_data/typecho
nano docker-compose.yml
version: "3"
services:
nginx:
image: nginx
ports:
- "8223:80" # 左边可以改成任意没使用的端口
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- ./typecho:/var/www/html
- ./nginx:/etc/nginx/conf.d
- ./logs:/var/log/nginx
depends_on:
- php
networks:
- web
php:
build: php
restart: always
expose:
- "9000" # 不暴露公网,故没有写9000:9000
volumes:
- ./typecho:/var/www/html
environment:
- TZ=Asia/Shanghai
depends_on:
- mysql
networks:
- web
mysql:
image: mysql:5.7
restart: always
environment:
- TZ=Asia/Shanghai
expose:
- "3306" # 不暴露公网,故没有写3306:3306
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/logs:/var/log/mysql
- ./mysql/conf:/etc/mysql/conf.d
env_file:
- mysql.env
networks:
- web
networks:
web:
1.2.6. 2.6 启动服务
docker-compose up -d1.3. 3. 维护命令
1.3.1. 更新
cd /root/data/docker_data/typecho # 进入docker-compose所在的文件夹
docker-compose pull # 拉取最新的镜像
docker-compose up -d # 重新更新当前镜像
1.3.2. 卸载
sudo -i # 切换到root
cd /root/data/docker_data/typecho # 进入docker-compose所在的文件夹
docker-compose down # 停止容器,此时不会删除映射到本地的数据
cd ~
rm -rf /root/data/docker_data/typecho # 完全删除映射到本地的数据
1.4. 4. 访问
- 直接访问: http://服务器IP:8223
- 如果配置了反向代理,可以通过域名访问
1.5. 注意事项
- 确保服务器防火墙开放对应端口(8223)
- 如果服务器内存较小,建议配置SWAP
- 使用Nginx Proxy Manager时需确保80和443端口未被占用
- 安装完成后记得在后台开启地址重写功能
评论