You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Artifactory后IP重定向异常排查求助

排查思路与解决方案

我之前碰到过几乎一模一样的情况,大概率是配置残留或者缓存搞的鬼,给你几个排查方向,按顺序试应该能解决:

  • 优先检查Artifactory的持久化卷配置
    你给Artifactory挂载了本地卷/volumes/artifactory:/var/opt/jfrog/artifactory,这个卷会永久保存Artifactory的所有配置和运行数据。之前用旧hosts访问时,Artifactory已经把当时的访问地址(旧IP+端口)写入了配置文件里,即使你后来删了hosts,容器重启后还是会读取这些残留配置。
    操作步骤:

    1. 先停止容器:docker-compose stop artifactory
    2. 进入宿主机的挂载目录搜索旧IP:grep -r "66.88.88.88" /volumes/artifactory
    3. 如果找到匹配的配置文件,先备份一份,然后把旧IP替换成正确的地址(比如localhost:9081或者你实际要用的域名/IP)
    4. 重新启动容器:docker-compose up -d artifactory
  • 清理Docker容器与服务的DNS缓存
    Docker本身和容器都有DNS缓存机制,可能还留存着旧的IP解析记录:

    1. 先彻底删除旧的Artifactory容器(避免残留网络配置):docker rm -f artifactory
    2. 重启Docker服务刷新全局缓存:systemctl restart docker(Linux系统)
    3. 重新用docker-compose启动所有服务:docker-compose up -d
  • 检查Artifactory后台的Base URL配置
    改端口能访问后,登录Artifactory的管理员后台,进入Admin > General Configuration,找到Base URL选项。这个地址如果被设置成了旧IP+8081,就会导致所有重定向和生成的配置都带旧IP。手动改成当前的访问地址(比如http://localhost:9081/artifactory),保存后重启容器即可。

  • 清理宿主机的本地DNS缓存
    有些Linux发行版会有系统级的DNS缓存,即使你删了/etc/hosts,缓存里的旧解析还在生效:

    • Ubuntu/Debian系统:执行systemd-resolve --flush-caches
    • CentOS/RHEL系统:执行service nscd restart
      清理后再测试访问,看是否还会跳转到旧IP。
  • 检查Docker Daemon的DNS配置
    查看Docker守护进程的配置文件/etc/docker/daemon.json,如果里面有dns字段,确认是不是指向了包含旧IP映射的DNS服务器。如果有异常配置,修改后重启Docker服务即可。

内容的提问来源于stack exchange,提问作者Christian Kullmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:33:05