docker排查

如果您运行 docker ps 后没有看到对应的 Clash 容器,可以尝试以下几个步骤来诊断和解决问题:

  1. 查看容器启动日志: 使用以下命令查看容器的启动日志,以便了解是否有任何启动错误或问题:

    1
    docker logs clash

    如果有错误,日志可能会提供一些线索。

  2. 检查容器状态: 使用以下命令检查容器的状态,以确保它正在运行:

    1
    docker inspect -f "{{.State.Status}}" clash

    如果容器状态不是 “running”,则说明有启动问题。

  3. 检查端口占用情况: 使用以下命令检查端口 7890、7891 和 9090 是否已被占用:

    1
    sudo netstat -tulpn | grep -E '7890|7891|9090'

    如果端口已被占用,您可能需要停止占用该端口的其他服务或更改 Clash 容器映射的端口。

  4. 重新运行容器: 尝试停止并删除现有的 Clash 容器,然后重新运行 Docker 命令:

    1
    2
    3
    docker stop clash
    docker rm clash
    docker run -d --name clash -p 7890:7890 -p 7891:7891 -p 9090:9090 -v ~/.config/clash/config.yaml:/root/.config/clash/config.yaml -v ~/.config/clash/clash-ui:/opt/clash/ui dreamacro/clash

    检查新的容器是否正确启动。

  5. 检查文件路径和权限: 确保配置文件和文件夹的路径是正确的,并且 Docker 进程有足够的权限访问这些文件。您可以使用以下命令检查文件夹和文件的权限:

    1
    ls -l ~/.config/clash/

    确保 Clash 容器可以读取配置文件和访问相关的文件夹。

通过执行上述步骤,您应该能够找到导致 Clash 容器无法正确启动的问题。如果问题仍然存在,请查看相关的错误信息,以便更好地定位问题。