
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像通过容器化方式提供带TLS客户端认证的Docker Remote API访问能力,客户端必须通过TLS证书进行身份验证。作为直接在Docker守护进程上配置TLS的替代方案,本镜像简化了安全暴露Docker Remote API的流程,适用于需要安全远程管理Docker主机的场景。
准备工作
生成证书文件
需准备CA根证书、服务器证书及私钥,可通过以下方式生成:
整理证书文件
将以下文件放入本地目录(后续挂载到容器):
ca-cert.pem # CA根证书 server-cert.pem # 服务器证书 server-key.pem # 服务器私钥
客户端需使用
ca-cert.pem、cert.pem(客户端证书)和key.pem(客户端私钥)进行认证
部署配置
创建docker-compose.yml文件:
yamlversion: "3.4" services: remote-api: image: kekru/docker-remote-api-tls:v0.4.0 ports: - 2376:443 # 标准Docker TLS端口映射 volumes: - <本地证书目录>:/data/certs:ro # 只读挂载证书目录 - /var/run/docker.sock:/var/run/docker.sock:ro # 只读挂载Docker套接字
启动服务
bash# 使用Docker Compose启动 docker-compose up -d # 或使用Docker Swarm部署 docker stack deploy --compose-file=docker-compose.yml remoteapi
服务启动后,Docker Remote API将通过https://<主机IP>:2376暴露,客户端需使用cert.pem和key.pem进行认证。
准备工作
无需提前生成证书,镜像将自动创建CA根证书、服务器证书、客户端证书及私钥。需准备:
部署配置
创建docker-compose.yml文件:
yamlversion: "3.4" services: remote-api: image: kekru/docker-remote-api-tls:v0.4.0 ports: - 2376:443 environment: - CREATE_CERTS_WITH_PW=supersecret # 证书加密密码(必填) - CERT_HOSTNAME=remote-api.example.com # API访问主机名(必填) # 可选:自定义证书有效期 # - CERT_EXPIRATION_DAYS=365 # 服务器/客户端证书有效期(默认365天) # - CA_EXPIRATION_DAYS=900 # CA根证书有效期(默认900天) volumes: - <本地证书目录>:/data/certs # 读写挂载,用于存储生成的证书 - /var/run/docker.sock:/var/run/docker.sock:ro
启动服务
bash# 使用Docker Compose启动 docker-compose up -d # 或使用Docker Swarm部署 docker stack deploy --compose-file=docker-compose.yml remoteapi
证书文件位置
生成的证书将存储在<本地证书目录>:
ca-cert.pem、server-cert.pem、server-key.pem<本地证书目录>/client/ca.pem、cert.pem、key.pem| 环境变量名 | 描述 | 默认值 | 优先级 |
|---|---|---|---|
CREATE_CERTS_WITH_PW | 证书加密密码(自动生成证书时必填) | 无 | 低于CERTS_PASSWORD_FILE |
CERTS_PASSWORD_FILE | 存储证书密码的Docker Secret文件路径(绝对路径) | 无 | 高于CREATE_CERTS_WITH_PW |
CERT_HOSTNAME | 服务器证书中的主机名(自动生成证书时必填,支持逗号分隔多个主机/IP) | 无 | - |
CERT_EXPIRATION_DAYS | 服务器和客户端证书的有效期(天) | 365 | - |
CA_EXPIRATION_DAYS | CA根证书的有效期(天) | 900 | - |
ca-cert.pem、cert.pem、key.pem)<本地证书目录>/client/通过环境变量指定证书路径和API地址:
bashexport DOCKER_HOST=tcp://remote-api.example.com:2376 export DOCKER_TLS_VERIFY=1 export DOCKER_CERT_PATH=<客户端证书目录> # 包含ca.pem、cert.pem、key.pem的目录
测试连接:
bashdocker ps # 应返回远程主机上的容器列表
dockerRemote脚本项目提供dockerRemote脚本简化客户端访问:
wget https://raw.githubusercontent.com/kekru/docker-remote-api-tls/master/dockerRemoteDOCKER_HOST和DOCKER_CERT_PATH为实际值./dockerRemote ps克隆仓库:
bashgit clone https://github.com/kekru/docker-remote-api-tls.git cd docker-remote-api-tls
启动服务(自动生成证书模式):
bash# 修改docker-compose.yml中的CERT_HOSTNAME为本地IP或主机名 docker-compose up -d
测试API访问:
bash# 使用项目提供的dockerRemote脚本 ./dockerRemote ps
CERT_EXPIRATION_DAYS和CA_EXPIRATION_DAYS)CERTS_PASSWORD_FILE)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务