本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本Docker镜像提供一个基于PC/SC标准和SCard API的中间件,用于实现应用程序与智能卡硬件的通信。作为连接上层应用与智能卡读卡器的桥梁,该镜像简化了智能卡访问流程,提供标准化接口,使开发人员无需关注底层硬件细节即可实现智能卡交互功能。
--device参数和多阶段构建镜像)pcscd服务)docker run -d \ --name scard-middleware \ --device=/dev/bus/usb:/dev/bus/usb \ # 挂载USB读卡器设备(根据实际接口调整) -e LOG_LEVEL=INFO \ # 设置日志级别 -e READER_POLL_INTERVAL=2000 \ # 读卡器轮询间隔(毫秒) -p 3000:3000 \ # 暴露API端口(如提供REST/gRPC接口) --restart unless-stopped \ your-registry/smartcard-middleware:latest
version: '3.8' services: scard-middleware: image: your-registry/smartcard-middleware:latest container_name: scard-middleware devices: - /dev/bus/usb:/dev/bus/usb # USB读卡器设备挂载 # 如需PCI接口读卡器,添加对应设备路径,如:/dev/pcsc:/dev/pcsc environment: - LOG_LEVEL=DEBUG # 调试模式日志级别 - READER_NAME_FILTER="ACS" # 读卡器名称过滤(支持通配符) - PCSCD_AUTOSTART=true # 自动启动PC/SC守护进程 - MAX_CONCURRENT_SESSIONS=10 # 最大并发会话数 ports: - "3000:3000" # API访问端口 - "2222:22" # 可选:SSH调试端口 volumes: - ./logs:/var/log/scard-middleware # 日志持久化 - ./config:/etc/scard # 配置文件挂载 restart: unless-stopped
| 参数名 | 可选值 | 默认值 | 说明 |
|---|---|---|---|
| LOG_LEVEL | DEBUG, INFO, WARN, ERROR | INFO | 日志输出级别 |
| READER_POLL_INTERVAL | 整数(毫秒) | 1000 | 读卡器状态轮询间隔 |
| READER_NAME_FILTER | 字符串 | * | 读卡器名称过滤表达式(支持通配符*) |
| PCSCD_AUTOSTART | true, false | true | 是否自动启动PC/SC守护进程 |
| MAX_CONCURRENT_SESSIONS | 整数 | 5 | 最大并发SCard会话数 |
| ENABLE_SSL | true, false | false | 是否启用SSL加密通信 |
| SSL_CERT_PATH | 路径 | /etc/ssl/certs/server.crt | SSL证书路径(需通过卷挂载) |
| SSL_KEY_PATH | 路径 | /etc/ssl/private/server.key | SSL私钥路径(需通过卷挂载) |
根据读卡器接口类型,需正确挂载对应设备:
/dev/bus/usb总线/dev/pcsc0)/dev/ttyUSB0)部署完成后,可通过以下命令检查服务状态:
# 查看容器运行状态 docker ps | grep scard-middleware # 查看日志输出 docker logs -f scard-middleware # 测试读卡器检测 docker exec -it scard-middleware scard-tool --list-readers
应用程序可通过以下方式与中间件交互:
/var/run/pcscd/pcscd.comm与PC/SC守护进程通信示例代码片段(Python):
import PyKCS11 # 连接到中间件提供的PC/SC服务 pkcs11 = PyKCS11.PyKCS11Lib() pkcs11.load('/usr/local/lib/libscard-middleware.so') # 中间件库路径 # 获取读卡器列表 readers = pkcs11.getSlotList(tokenPresent=True) if not readers: raise Exception("未检测到智能卡读卡器") # 连接智能卡 session = pkcs11.openSession(readers[0]) session.login("123456") # 智能卡PIN码 # 执行命令(示例:读取卡片ATR) atr = session.getATR() print(f"智能卡ATR: {ATR(atr).toString()}") session.logout() session.closeSession()
--privileged参数(仅测试环境使用)MAX_CONCURRENT_SESSIONS值并调整系统资源限制
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429