2025年,使用docker在Ubuntu主机上部署Ghost博客记录

简要记录一下我使用Docker搭建Ghost博客的过程。主机上提前安装了1panel面板。

2025年,使用docker在Ubuntu主机上部署Ghost博客记录

如今这世道,AI 如同春日繁花,处处皆是,ChatGPT,DeepSeek,Grok大大兴其道。出门行路,问个方向,AI 导航便在手机里咿咿呀呀地指手画脚;搜个物件,AI 搜索引擎瞬间蹦出一堆答案,花花绿绿,晃得人眼晕;写篇文章,画个丹青,AI 也能掺和一脚,仿若自己成了那妙笔生花的谪仙。

可这 AI,虽说便利,却也着实让人嫌弃。写东西时,本想让它润色添彩,哪晓得它东拼西凑,尽是些陈词滥调,毫无生气,如同那死水微澜,激不起半点创作的兴致。它推荐的东西,千篇一律,全然不顾你真正的心意,像个不懂事的稚童,一个劲儿地往你怀里塞它自以为好的玩意儿,却不知你真正珍视的,它压根儿就瞧不上眼。

越想越觉得,这 AI 再神通广大,也替代不了人心中的那点灵犀。于是,我决定重新拿起笔(虽是敲打键盘),用自己的眼睛去观察这世间万物,用自己的心去感悟生活的酸甜苦辣,把那些点点滴滴的感悟都记录下来。

从今日起,我要抛开对 AI 的依赖,重新开始尝试记录生活,找回那份久违的创作的宁静与欢喜。工欲善其事必先利其器,和很多人一样,我的记录也是从“先注册一个域名”开始的。域名注册和服务器搭建的过程在这里不做详述了,简要记录一下我使用Docker搭建Ghost博客的过程。

<!--more-->

本次安装采用了不太时兴的 docker pull & run 方式,主机上安装docker的过程因为比较简单故在此省略。

主机使用了BWG家的GIA主机,去年1024节时以 $34.50购入,配置信息如下(题外话:BWG家的主机稳定性还是非常不错的,我从2016年就开始使用他家的主机,已经稳定运行了快10年,需要的伙伴们可以使用以下链接注册:https://bwh89.net/aff.php?aff=8343

配置:Ubuntu 22.04 单核Intel Xeon@2.4GHz + 1GB RAM
VPS 信息

准备工作

确保你的主机上安装了1panel面板,如果没有请参考下面的链接在主机上安装1panel面板,并且使用1panel面板安装了Openresty服务器。

1Panel 文档
1Panel 一款现代化的 Linux 面板
确保主机安装了openresty服务器

1.反向代理

在1panel管理面板中创建网站(如果无法新建网站,请按照提示安装服务器)→反向代理,将域名替换为你自己的域名后,按照下图填写配置信息,代理地址写127.0.0.1:2368(端口号可以自定,但是要注意和后续启动容器时配置的端口要保持一致):

完成以上设置后,你可以使用1panel自带的Docker容器管理工具安装Ghost博客,也可以使用SSH工具登录主机,然后按照如下过程安装和启动Ghost博客。

一、 拉取 Ghost 镜像

  1. 查看 Docker 版本
docker -v
# 输出 Docker version 27.4.0, build bde2b89
  1. 从 Docker Hub 拉取 Ghost 官方镜像的命令
  • 检索ghost镜像
docker search ghost
# 输出:
# NAME                         DESCRIPTION                                     # STARS     OFFICIAL
# ghost                        Publish by web and email newsletter, with me…   1767      [OK]
# bitnami/ghost                Bitnami container image for Ghost               41
# ......
  • 拉取镜像

根据检索结果,选择官方镜像拉取:

docker pull ghost

查看已下载的镜像:

docker images
# 输出:
REPOSITORY         TAG                  IMAGE ID       CREATED        SIZE
ghost              latest               0774ff88e9dc   36 hours ago   564MB
1panel/openresty   1.21.4.3-3-3-focal   47fabb474247   8 months ago   667MB

二、 启动 Ghost 容器

  1. 使用 docker run 命令启动 Ghost 容器
docker run -d --name ghost -e NODE_ENV=development -e database__connection__filename='/var/lib/ghost/content/data/ghost.db' -e url=https://asipilin.net -p 2368:2368 -v /home/ghost:/var/lib/ghost/content ghost
# -e 环境参数释义
# NODE_ENV 运行模式,可选 development 或者 production
# database__connection__filename 数据库连接信息,这里默认使用sqlite
# url 网站地址
# -v 挂载
# 将容器上的/var/lib/ghost/content目录挂载到主机/home/ghost目录下
# -p 端口映射
# 格式:主机端口:容器端口 如2368:2368
📌
url替换成你自己的域名

执行完命令会输出容器对应的卷名(十六进制):

beb5a43d6a5dd9250e3282504b155387dc6a149208ba8e7b1f454f620211705c
  1. 查看容器运行状态
docker container ls
# 输出:
# CONTAINER ID   IMAGE                                 COMMAND                  CREATED        STATUS        PORTS        NAMES
# beb5a43e6a5d   ghost                                 "docker-entrypoint.s…"   2 minutes ago    Up 2 minutes    0.0.0.0:2368->2368/tcp, [::]:2368->2368/tcp   ghost

能够看到以上信息,说明容器运行成功。

三、 访问与配置 Ghost 博客

  1. 通过浏览器访问 Ghost 博客后台

在浏览器中输入主机http://ip:2368 即可访问Ghost博客,此时页面中会显示网站内容正在更新,请用户稍后访问的信息,不用管他,继续访问http://ip:2368 /ghost/可打开Ghost博客后台进入配置界面。

初次访问Ghost博客界面
  1. 初次配置博客(如设置管理员账号、站点标题等)
  • 配置管理员账号,在下面的表单中分别输入站点标题,用户信息以及密码,点击 Create account & start publishing 按钮完成初始用户的创建。
初始配置表单

用户创建完成后即可看到后台引导页,可根据引导页提示一步步完成博客的初始设置:

后台引导页

详细的配置方法和建议可参考如下 Ghost官方的帮助说明:

Setting up your Ghost site
A quick guide to all of the most important settings for publishers who have just launched a new Ghost site.

Ghost官方提供的有关博客配置的帮助文档

四、 常见问题与注意事项

  1. 容器启动失败的常见原因及解决方法

解决方法:1.查看端口是否被占用;2.检查容器名是否已经被占用。

2.数据备份与恢复的注意事项

解决方法:1.注意挂载目录时,严格按照上述说明挂载目录。