
phpipam/phpipam-cronphpIPAM 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.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.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 | ✅ ✅ | 代理端口 |
通过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
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:
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 <***>



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