本文目录

镜像、容器、端口和持久化数据,各自解决的是不同问题。

镜像与容器不是同一件事

镜像描述文件和启动方式,容器则是镜像运行后的实例。更新镜像后,已经启动的容器不会自动变成新版本;需要重新创建容器,才能运行新的内容。

对于静态博客,构建阶段可以把 Markdown 生成 HTML,运行阶段只需一个负责提供静态文件的 Web 服务器。把构建工具留在前一阶段,也让运行镜像更简洁。

端口映射与域名

容器内监听的端口,与服务器对外暴露的端口是两回事。8080:80 表示把宿主机的 8080 端口映射到容器的 80 端口;域名和 HTTPS 通常还需要在反向代理或入口网关中配置。

因此,容器在本地正常启动,只说明应用可以被当前机器访问。要从公网使用,还需要检查 DNS、网络入口和证书配置。

识别真正需要持久化的数据

静态页面通常在构建时就已经确定,改文章需要更新源文件并重建镜像。若以后加入评论、上传或后台编辑,则要单独考虑数据库与文件的持久化、备份和迁移。

部署成功的标准不只是“容器在运行”,还包括能访问、能更新、能恢复。

研究仍在继续。