企业官网用 Docker 部署,端口和数据备份要提前准备什么
用 Docker 把企业官网跑起来,很多人只盯着「镜像能不能起」,却在真正对外提供服务时卡在两件没提前准备的事:端口和数据备份。端口没规划好,服务起来了外面却访问不到;备份没留好,容器一旦重建,数据和上传的静态文件就一起没了。这两件都在上线之前做最省事,上线之后再补代价高。AnQiCMS 的部署方式里就包含 Docker 镜像,配合内置的备份恢复能力,正好对应这两件事。
镜像与端口映射怎么定
系统提供名为 anqicms/anqicms 的 Docker 镜像,一条命令就能把站点跑起来,这也是它相较传统 PHP 环境部署更省心的一点。但容器内部端口和宿主机对外端口是两回事:容器里服务默认监听 8001 端口,宿主机要用哪个端口对外、要不要经反向代理转成 80 或 443,这些要在起容器之前就想清楚。
常见做法是容器内保持默认的 8001,宿主机通过端口映射把它对外暴露,再由前置的反向代理统一处理域名与加密访问。定端口时有三个点值得提前确认:一是宿主机目标端口有没有被占用,二是防火墙与安全组是否放行,三是多个站点共存时端口不要互相撞车。把映射关系写进部署说明,比临时试端口稳得多。
默认端口对外怎么走
默认监听 8001 这件事容易被忽略,导致「本地能开、外网打不开」。原因通常是只起了容器、没做端口映射,或者映射做了但云服务器安全组没放行。正确的链路是:用户访问域名,反向代理在宿主机接收,再转发到容器对外的映射端口,最终落到容器内的 8001。链路上任何一环没配好,外部就访问不到。所以上线前应该完整走一遍这个链路验证,而不是只在容器内部自测通过就认为部署完成。
上线前的数据备份怎么留
Docker 的一个特点是环境可替换,但可替换的前提是数据能恢复。系统的备份与恢复能力覆盖数据以及静态文件,也就是说数据库内容和上传的图片等资源都在备份范围内,恢复时可以还原。上线前要先确认三件事:备份产物落在容器的持久化卷或宿主机目录、而不是只在容器可写层里;备份有固定节奏而不是手动点一次;恢复流程演练过一次,知道怎么从备份把站点拉回来。
把静态文件也纳入备份尤其重要。官网的图片、附件如果只存在容器里,容器重建就会丢,而这些恰恰是最难重新生成的内容。规划端口和规划备份,本质是同一件事的两面:前者保证服务能对外提供,后者保证服务随时可以重来。
常见问题
一定要用默认 8001 端口吗? 不必对外暴露 8001,对外常用 80 或 443;8001 多作为容器内服务端口,由反向代理转发即可。
容器删了数据会没吗? 只要数据与静态文件放在持久化卷并有备份,就不会丢;丢的往往是没做持久化和备份的那部分。
上线前最需要验证什么? 验证「域名到容器内 8001」这条访问链路通不通,再验证一次从备份恢复能不能把站点拉起来。