Skip to content

[Bug] 无法通过 unix:///var/run/docker.sock 连接本地环境,提示 "Environment unreachable" #38

Description

@EmoooNET

环境信息 (Environment)

  • 操作系统: Ubuntu Server (x86_64)
  • Docker 版本: 24.x / 27.x (通过 /usr/bin/docker 运行,非 Snap 版本)
  • 镜像版本: 6053537/portainer-ce:latest (或具体版本号,如 2.33.3)
  • 部署方式: Docker Compose

问题描述 (Description)

在 Ubuntu 环境下使用该汉化镜像时,无法连接宿主机的 Docker 端点。即使宿主机的 /var/run/docker.sock 权限已设置为 666,且容器以 privileged: trueuser: "0:0" 运行,Portainer 依然报错:
Failed loading environment: The environment named local is unreachable.

复现步骤 (Steps to Reproduce)

  1. 使用 docker-compose 部署镜像 6053537/portainer-ce:latest
  2. 挂载卷 - /var/run/docker.sock:/var/run/docker.sock
  3. 启动并进入初始化页面。
  4. 点击 "Get Started" 或手动添加本地环境,系统提示 unreachable
  5. 查看日志,发现存在多次环境迁移记录(如:Executing post init migration for environment 3),即便删除了宿主机挂载的 data 目录,问题依然存在。

诊断信息 (Diagnostic Info)

  • 宿主机 Socket 状态:
    srw-rw-rw- 1 root docker 0 Jan 5 12:40 /var/run/docker.sock
  • Docker Context:
    NAME        DOCKER ENDPOINT               ERROR
    default *   unix:///var/run/docker.sock
  • 容器日志:
    日志显示 HTTP/HTTPS 服务启动正常,但在初始化环境探测阶段失败。

预期结果 (Expected Behavior)

Portainer 应该能够正常通过挂载的 Socket 文件识别并连接到本地 Docker 引擎。

实际结果 (Actual Behavior)

无法连接。在相同的配置和环境下,切换回官方镜像 portainer/portainer-ce:latest 后问题立即消失,环境连接正常。

可能的原因分析 (Possible Cause)

疑似该镜像在处理初始化环境检测的逻辑中,对 docker.sock 的探测脚本或内部数据库(boltdb)的初始化默认值存在偏移,导致即便权限正确也无法完成握手。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions