
sparkfhir/mongo本镜像为Spark FHIR Server设计,是一个定制化的MongoDB数据库镜像。FHIR(Fast Healthcare Interoperability Resources)是健康领域的数据交换标准,用于规范数据的格式和交互方式。该镜像的主要用途是作为Spark FHIR Server的后端数据库,专门存储符合FHIR标准的健康数据,支持健康信息系统间的数据存储、管理和交互。
mongo客户端、MongoDB Compass)。通过docker run命令直接启动镜像,基本格式如下:
bashdocker run -d \ --name spark-fhir-mongodb \ -p 27017:27017 \ -v spark-fhir-mongodb-data:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=admin \ -e MONGO_INITDB_ROOT_PASSWORD=your_secure_password \ -e MONGO_INITDB_DATABASE=fhir \ spark-fhir-server-mongodb:latest
-d:后台运行容器。--name spark-fhir-mongodb:指定容器名称为spark-fhir-mongodb。-p 27017:27017:映射容器内MongoDB默认端口27017到宿主机27017端口(宿主机端口可自定义,如-p 27018:27017)。-v spark-fhir-mongodb-data:/data/db:通过命名卷spark-fhir-mongodb-data挂载MongoDB数据目录(/data/db),实现数据持久化。MONGO_INITDB_ROOT_USERNAME:MongoDB根用户用户名(必填,用于身份认证)。MONGO_INITDB_ROOT_PASSWORD:MongoDB根用户密码(必填,需设置强密码)。MONGO_INITDB_DATABASE:初始数据库名称(默认建议设为fhir,用于存储FHIR资源)。创建docker-compose.yml文件,配置如下(可与Spark FHIR Server联动):
yamlversion: '3.8' services: fhir-mongodb: image: spark-fhir-server-mongodb:latest container_name: spark-fhir-mongodb restart: always # 容器退出时自动重启 ports: - "27017:27017" # 宿主机端口:容器端口 volumes: - spark-fhir-mongodb-data:/data/db # 数据持久化卷 - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js # 可选:初始化脚本(如创建FHIR专用用户) environment: - MONGO_INITDB_ROOT_USERNAME=admin - MONGO_INITDB_ROOT_PASSWORD=SecurePassword123! - MONGO_INITDB_DATABASE=fhir networks: - fhir-network # 与Spark FHIR Server共享网络 networks: fhir-network: driver: bridge volumes: spark-fhir-mongodb-data: # 命名卷,自动创建
若需创建FHIR专用数据库用户(非根用户),可编写mongo-init.js脚本并挂载到/docker-entrypoint-initdb.d/目录,容器启动时会自动执行。示例脚本:
javascript// mongo-init.js db = db.getSiblingDB('fhir'); // 切换到fhir数据库 db.createUser({ user: "fhiruser", pwd: "FhirUserPassword123!", roles: [ { role: "readWrite", db: "fhir" } // 授予fhir数据库的读写权限 ] });
Spark FHIR Server需通过以下参数连接本数据库:
mongodb://<宿主机IP或容器名>:27017(使用Docker Compose时,容器名可直接作为主机名,如mongodb://fhir-mongodb:27017)。fhiruser)和密码(如FhirUserPassword123!)。fhir(与MONGO_INITDB_DATABASE一致)。| 环境变量名 | 说明 | 默认值 | 是否必填 |
|---|---|---|---|
MONGO_INITDB_ROOT_USERNAME | MongoDB根用户用户名,用于数据库管理和认证。 | - | 是 |
MONGO_INITDB_ROOT_PASSWORD | MongoDB根用户密码,需设置强密码(建议包含大小写字母、数字和特殊符号)。 | - | 是 |
MONGO_INITDB_DATABASE | 初始创建的数据库名称,建议设为fhir以存储FHIR资源。 | test | 否 |
MONGO_PORT | 容器内MongoDB服务端口(一般无需修改)。 | 27017 | 否 |
通过Docker卷(volumes)实现数据持久化,避免容器删除后数据丢失。推荐使用命名卷(如示例中的spark-fhir-mongodb-data),而非宿主机目录挂载,以简化管理。
生产环境中,建议配置MongoDB副本集以提升可用性:
mongo客户端执行rs.initiate()等命令)。mongodb://fhir-mongodb-1:27017,fhir-mongodb-2:27017,fhir-mongodb-3:27017/fhir?replicaSet=rs0)。MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD),并定期更换密码。mongodump工具备份数据库,或配置MongoDB的定时备份机制。--wiredTigerCacheSizeGB参数限制缓存大小),避免资源耗尽。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务