
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
phpIPAM 的典型用户(网络管理员)通常对 LAMP 栈经验有限,这些 Docker 镜像提供了更简单的方式来创建和维护可用的 phpIPAM 环境。考虑到目标用户,设计上优先考虑简洁性而非复杂性,因此不支持部分高级用例。
原生 SSL 支持可通过 DockerHub 上的反向 HTTPS 代理镜像实现(如 HAProxy,详见下文示例)。如需高级用例,可参考官方文档 [] 在虚拟机中手动安装。
phpipam-www:前端 Apache/PHP 容器,处理 Web 请求。phpipam-cron:定时任务容器,用于网络发现等周期性任务。部署注意:
phpipam-www 支持多实例部署并负载均衡。phpipam-cron 仅支持单实例运行(避免任务重复执行)。NET_ADMIN 和 NET_RAW 容器能力,以支持 ping 和 SNMP 功能。allowPrivilegeEscalation=true。| 标签格式 | 说明 |
|---|---|
latest | 跟踪最新稳定版 + Alpine Linux 安全更新 |
1.7x | 跟踪 1.7 维护分支 + Alpine Linux 安全更新 |
1.6x/1.5x/1.4x | 分别跟踪 1.6/1.5/1.4 维护分支(已过时) |
nightly | 每日开发快照(非生产环境,不稳定) |
v1.7.x/v1.6.y | 静态快照版本,不含 Alpine Linux 安全更新 |
通过 docker-compose 快速部署完整栈(含 MariaDB 数据库):
docker-compose.yml,替换示例密码为安全密钥(如 my_secret_phpipam_pass 和 my_secret_mysql_root_pass)。docker-compose -p phpIPAM up -d 启动服务。yaml# 警告:请将示例密码替换为安全的密钥。 # 警告:替换 'my_secret_phpipam_pass' 和 'my_secret_mysql_root_pass' version: '3' services: phpipam-web: image: phpipam/phpipam-www:latest ports: - "80:80" # Web 端口映射 environment: - TZ=Europe/London # 时区设置,如 Asia/Shanghai - IPAM_DATABASE_HOST=phpipam-mariadb # 数据库容器名 - IPAM_DATABASE_PASS=my_secret_phpipam_pass # 数据库密码 - IPAM_DATABASE_WEBHOST=% # 允许所有主机访问数据库(生产环境建议限制) restart: unless-stopped volumes: - phpipam-logo:/phpipam/css/images/logo # 自定义 logo 挂载 - phpipam-ca:/usr/local/share/ca-certificates:ro # 可信 CA 证书 depends_on: - phpipam-mariadb # 依赖数据库容器 phpipam-cron: image: phpipam/phpipam-cron:latest environment: - TZ=Europe/London - IPAM_DATABASE_HOST=phpipam-mariadb - IPAM_DATABASE_PASS=my_secret_phpipam_pass - SCAN_INTERVAL=1h # 网络发现间隔(可选:5m/10m/15m/30m/1h/2h/4h/6h/12h) restart: unless-stopped volumes: - phpipam-ca:/usr/local/share/ca-certificates:ro depends_on: - phpipam-mariadb phpipam-mariadb: image: mariadb:latest # 数据库容器 environment: - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass # 数据库 root 密码 restart: unless-stopped volumes: - phpipam-db-data:/var/lib/mysql # 数据库数据持久化 volumes: phpipam-db-data: # 数据库数据卷 phpipam-logo: # Logo 数据卷 phpipam-ca: # CA 证书数据卷
若使用现有 MySQL 服务器,修改 docker-compose.yml 如下(无需部署数据库容器):
yamlversion: '3' services: phpipam-web: image: phpipam/phpipam-www:latest ports: - "80:80" environment: - TZ=Europe/London - IPAM_DATABASE_HOST=my.database.server # 外部数据库主机 - IPAM_DATABASE_USER=existing_username # 数据库用户名 - IPAM_DATABASE_PASS=existing_password # 数据库密码 - IPAM_DATABASE_NAME=existing_db_name # 数据库名 restart: unless-stopped volumes: - phpipam-logo:/phpipam/css/images/logo - phpipam-ca:/usr/local/share/ca-certificates:ro phpipam-cron: image: phpipam/phpipam-cron:latest environment: - TZ=Europe/London - IPAM_DATABASE_HOST=my.database.server - IPAM_DATABASE_USER=existing_username - IPAM_DATABASE_PASS=existing_password - IPAM_DATABASE_NAME=existing_db_name - SCAN_INTERVAL=1h restart: unless-stopped volumes: - phpipam-ca:/usr/local/share/ca-certificates:ro volumes: phpipam-logo: phpipam-ca:
可通过环境变量调整 phpIPAM 配置(部分支持从文件读取敏感信息,变量名后加 _FILE 即可,如 IPAM_DATABASE_PASS_FILE=/run/secrets/pass)。
| 环境变量 | 默认值 | 适用容器(前端/定时任务) | 说明 |
|---|---|---|---|
| TZ | "UTC" | ✅ ✅ | 时区(如 "Asia/Shanghai") |
| IPAM_DISABLE_INSTALLER📂 | "false" | ✅ ❌ | 禁用安装助手脚本(v1.6.1+),建议初始配置后设为 1 |
| IPAM_DATABASE_HOST📂 | "127.0.0.1" | ✅ ✅ | 数据库主机地址 |
| IPAM_DATABASE_USER📂 | "phpipam" | ✅ ✅ | 数据库用户名 |
| IPAM_DATABASE_PASS📂 | "phpipamadmin" | ✅ ✅ | 数据库密码 |
| IPAM_DATABASE_NAME📂 | "phpipam" | ✅ ✅ | 数据库名 |
| IPAM_DATABASE_PORT📂 | 3306 | ✅ ✅ | 数据库端口 |
| IPAM_BASE | "/" | ✅ ❌ | 反向代理路径(如 [] |
| SCAN_INTERVAL | "1h" | ❌ ✅ | 定时任务间隔(仅 phpipam-cron 生效) |
📂 标记变量支持通过文件读取值(如 Docker secrets),其他变量直接传值即可。
从 v1.5.0 起,可通过 IPAM_CONFIG_FILE 环境变量加载自定义配置文件(需挂载到持久卷)。此时仅以下环境变量生效,其他配置需手动在 config.php 中设置:
| 环境变量 | 默认值 | 适用容器(前端/定时任务) | 说明 |
|---|---|---|---|
| TZ | "UTC" | ✅ ✅ | 时区 |
| IPAM_CONFIG_FILE | "" | ✅ ✅ | 配置文件路径(如 "/config/config.php") |
| SCAN_INTERVAL | "1h" | ❌ ✅ | 定时任务间隔 |
负载均衡注意:多实例部署时,需在 config.php 中设置 $session_storage = "database"; 确保会话一致性。
容器启动时会自动运行 update-ca-certificates,加载 /usr/local/share/ca-certificates 目录下的 PEM 格式证书。挂载持久卷到该目录即可添加自定义 CA:
bash# 示例:容器内证书目录结构 /usr/local/share/ca-certificates/ ├── ACME_ROOT.crt # 根证书 └── ACME_INTERMEDIATE.crt # 中间证书
通过 HAProxy 实现 HTTPS 访问(需提前准备 SSL 证书):
bashdocker run -d -p 443:443 -p 80:80 --name HAProxy --restart always \ -v haproxy_ssl:/etc/ssl/certs -v haproxy_cfg:/usr/local/etc/haproxy \ haproxy:latest
进入容器,创建 /usr/local/etc/haproxy/haproxy.cfg:
text# 示例 haproxy.cfg 配置 global daemon maxconn 256 resolvers mydns nameserver ns1 192.168.1.53:53 # 替换为内部 DNS 服务器 IP nameserver ns2 192.168.2.53:53 accepted_payload_size 8192 defaults mode http timeout connect 5000ms timeout client 5000ms timeout server 60000ms option forwardfor frontend phpipam-rp bind *:80 bind *:443 ssl crt /etc/ssl/certs # SSL 证书目录 http-request redirect scheme https code 301 unless { ssl_fc } # HTTP 重定向到 HTTPS default_backend phpipam-web http-request del-header X-Forwarded-For backend phpipam-web server s1 phpipam.local:80 check resolvers mydns init-addr none # 替换为 phpipam 容器的内部 DNS 名 http-request set-header X-Forwarded-Uri %[url] http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc }
将证书文件(全链证书 ipam.crt 和密钥 ipam.crt.key)放入宿主机的 haproxy_ssl 卷中,容器内路径为 /etc/ssl/certs。
bashdocker restart HAProxy # 重启容器 docker logs HAProxy # 检查日志是否有错误
GNU General Public License v3.0
Gary Allan(***:[***已删除])
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务