Docker之typecho部署
一行命令搞定博客系统
核心命令
docker run -d \
-p 8080:80 \
--privileged=true \
--restart=always \
--add-host=blog.esugar.cn:192.168.254.130 \
-v /home/typecho/usr:/app/usr \
--name typecho \
-e TZ=Asia/Shanghai \
joyqi/typecho:nightly-php7.4-apache
参数详解
参数 | 作用说明 | 必要性 |
---|---|---|
-d | 后台运行容器 | 必选 |
-p 8080:80 | 将容器80端口映射到主机8080端口 | 必选(端口可自定义) |
--privileged=true | 赋予容器root权限(需读写设备) | 可选(部分环境需要) |
--restart=always | 容器意外退出时自动重启 | 生产环境建议 |
-v /home/typecho/usr:/app/usr | 挂载数据卷(左侧主机路径,右侧容器路径) | 必选(防止数据丢失) |
--name typecho | 指定容器名称 | 推荐 |
-e TZ=Asia/Shanghai | 设置容器时区 | 中文环境建议 |
joyqi/typecho:nightly-php7.4-apache | 官方镜像地址(含PHP7.4+Apache) | 必选 |
关键操作步骤
创建数据目录(避免权限问题):
mkdir -p /home/typecho/usr && chmod 777 /home/typecho/usr
执行部署命令:
# 粘贴上述核心命令
访问验证:
- 浏览器打开
http://服务器IP:8080
- 按Typecho安装向导完成初始化
- 浏览器打开
注意事项
安全提醒:
- 生产环境建议修改8080为非常用端口(如
9001:80
) - 完成后删除
--privileged
参数(测试环境临时使用)
- 生产环境建议修改8080为非常用端口(如
数据备份:
# 直接备份主机目录即可 tar -czvf typecho_backup.tar.gz /home/typecho/usr
版本升级:
docker stop typecho && docker rm typecho docker pull joyqi/typecho:nightly-php7.4-apache # 重新执行run命令(原有数据卷会自动复用)
常见问题
Q:访问8080端口出现403错误?
A:检查数据卷权限:chown -R 33:33 /home/typecho/usr
(33是Apache用户ID)
Q:如何更换MySQL数据库?
A:添加环境变量(需先启动MySQL容器):
-e TYPE_DB_ADAPTER="pdo_mysql" \
-e TYPE_DB_HOST="mysql容器IP" \
-e TYPE_DB_PORT="3306" \
-e TYPE_DB_USER="root" \
-e TYPE_DB_PASSWORD="123456" \
-e TYPE_DB_DATABASE="typecho"
总结
通过Docker部署Typecho仅需:
- 挂载数据卷持久化
/app/usr
目录 - 暴露端口访问
- 设置时区等基础参数
后续管理只需操作/home/typecho/usr
目录即可完成所有数据维护,真正实现"一次配置,永久运行"!