
如果你使用 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 cron容器是开源Web IP地址管理应用(IPAM)的配套定时任务容器,专为执行计划网络发现作业等定时任务设计。该容器简化了phpIPAM环境的维护,适合对LAMP栈经验有限的网络管理员使用,需注意仅支持单实例部署以避免任务冲突。
allowPrivilegeEscalation=true。适用于网络管理员部署phpIPAM进行IP地址管理时,需要自动执行定时网络发现、定期数据同步等维护任务的场景。尤其适合需简化phpIPAM环境搭建和维护的中小型网络环境。
phpIPAM Docker镜像包含两个主要组件:
phpipam-www:前端Apache/PHP容器,支持多实例部署和负载均衡。phpipam-cron:定时任务容器,仅支持单实例部署。latest:跟踪最新稳定版本及Alpine Linux安全更新。1.7x:跟踪1.7 git维护分支及Alpine Linux安全更新。1.6x/1.5x/1.4x:分别跟踪对应git维护分支(已过时)。nightly:夜间开发快照(非生产环境)。v1.7.x/v1.6.y/v1.5.y:静态快照,无Alpine安全更新。完整栈部署(Docker Compose)
创建docker-compose.yml并运行docker-compose -p phpIPAM up -d:
yaml# 警告:替换示例密码为安全密钥 version: '3' services: phpipam-web: image: phpipam/phpipam-www:latest ports: - "80:80" environment: - TZ=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 - phpipam-ca:/usr/local/share/ca-certificates:ro depends_on: - phpipam-mariadb phpipam-cron: image: phpipam/phpipam-cron:latest environment: - TZ=Asia/Shanghai - IPAM_DATABASE_HOST=phpipam-mariadb - IPAM_DATABASE_PASS=my_secret_phpipam_pass - SCAN_INTERVAL=1h 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 restart: unless-stopped volumes: - phpipam-db-data:/var/lib/mysql volumes: phpipam-db-data: phpipam-logo: phpipam-ca:
外部MySQL服务器部署(Docker Compose)
适用于使用现有MySQL服务器的场景,创建docker-compose.yml并部署:
yamlversion: '3' services: phpipam-web: image: phpipam/phpipam-www:latest ports: - "80:80" environment: - TZ=Asia/Shanghai - 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=Asia/Shanghai - 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:
环境变量配置
支持通过环境变量配置容器,标记📂的变量可添加_FILE后缀从文件加载值(如Docker secrets),示例:
bashdocker ... -e IPAM_DATABASE_PASS_FILE=/run/secrets/ipam_database_password
| ENV | 默认值 | WWW/CRON容器 | 描述 |
|---|---|---|---|
| TZ | "UTC" | ✅ ✅ | 时区(例如 "Asia/Shanghai") |
| IPAM_DATABASE_HOST 📂 | "127.0.0.1" | ✅ ✅ | MySQL数据库主机 |
| IPAM_DATABASE_USER 📂 | "phpipam" | ✅ ✅ | MySQL数据库用户 |
| IPAM_DATABASE_PASS 📂 | "phpipamadmin" | ✅ ✅ | MySQL数据库密码 |
| IPAM_DATABASE_NAME 📂 | "phpipam" | ✅ ✅ | MySQL数据库名 |
| IPAM_DATABASE_PORT 📂 | 3306 | ✅ ✅ | MySQL数据库端口 |
| IPAM_DATABASE_WEBHOST 📂 | "localhost" | ✅ ✅ | MySQL允许的主机 |
| SCAN_INTERVAL | "1h" | ❌ ✅ | 网络发现作业间隔,可选值:5m,10m,15m,30m,1h,2h,4h,6h,12h |
| IPAM_DEBUG 📂 | false | ✅ ✅ | 启用PHP/应用调试模式 |
| PROXY_ENABLED 📂 | false | ✅ ✅ | 使用代理 |
| PROXY_SERVER 📂 | "myproxy.something.com" | ✅ ✅ | 代理服务器 |
| PROXY_PORT 📂 | 8080 | ✅ ✅ | 代理端口 |
容器内配置文件(v1.5.0+)
通过IPAM_CONFIG_FILE环境变量加载自定义config.php(需挂载至持久卷),此时仅以下变量有效:
| ENV | 默认值 | WWW/CRON容器 | 描述 |
|---|---|---|---|
| TZ | "UTC" | ✅ ✅ | 时区(例如 "Asia/Shanghai") |
| IPAM_CONFIG_FILE | "" | ✅ ✅ | 配置文件路径(例如 "/config/config.php"),必须以.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 # ls ACME_ROOT.crt ACME_INTERMEDIATE.crt
部署HAProxy容器
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
配置haproxy.cfg
在容器内创建/usr/local/etc/haproxy/haproxy.cfg:
textglobal daemon maxconn 256 resolvers mydns nameserver ns1 192.168.1.53:53 # 替换为内部DNS服务器 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 http-request redirect scheme https code 301 unless { ssl_fc } 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 }
部署证书并重启
将证书和密钥挂载至/etc/ssl/certs,重启容器并检查日志:
bashdocker restart HAProxy docker container logs HAProxy
GNU General Public License v3.0
Gary Allan <***>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务