本文目录
镜像、容器、端口和持久化数据,各自解决的是不同问题。
镜像与容器不是同一件事
镜像描述文件和启动方式,容器则是镜像运行后的实例。更新镜像后,已经启动的容器不会自动变成新版本;需要重新创建容器,才能运行新的内容。
对于静态博客,构建阶段可以把 Markdown 生成 HTML,运行阶段只需一个负责提供静态文件的 Web 服务器。把构建工具留在前一阶段,也让运行镜像更简洁。
端口映射与域名
容器内监听的端口,与服务器对外暴露的端口是两回事。8080:80 表示把宿主机的 8080 端口映射到容器的 80 端口;域名和 HTTPS 通常还需要在反向代理或入口网关中配置。
因此,容器在本地正常启动,只说明应用可以被当前机器访问。要从公网使用,还需要检查 DNS、网络入口和证书配置。
识别真正需要持久化的数据
静态页面通常在构建时就已经确定,改文章需要更新源文件并重建镜像。若以后加入评论、上传或后台编辑,则要单独考虑数据库与文件的持久化、备份和迁移。
部署成功的标准不只是“容器在运行”,还包括能访问、能更新、能恢复。
研究仍在继续。