使用 VS Code 的 Dev Containers 插件,通过跳板机间接连接docker
使用 VS Code 的 Dev Containers 插件,通过跳板机间接连接.
步骤:
- 确保跳板机上已安装 Docker,且你能通过 SSH 执行 docker exec。
- 在本地 VS Code 中:
- 安装插件:Remote - SSH 和 Dev Containers。
- 先通过 SSH 连接到跳板机(如 user@jump-host)。
- 在跳板机的终端中,找到目标容器名或 ID:
docker ps - 在 VS Code 中按下 Ctrl+Shift+P,输入并选择:
Dev Containers: Attach to Running Container... - 选择你的容器,VS Code 会自动在容器内启动一个 VS Code Server,并打开编辑器。
💡 这种方式不需要容器暴露 SSH 服务,直接通过 Docker API 进入。
可能遇到的问题:
报错 current user does not have permission to run docker
说明你的用户 ssa 没有权限访问 Docker 的 Unix socket,这是典型“用户不在 docker 用户组”的表现。
解决方案(需管理员权限)
第一步:确认 Docker 服务正在运行
sudo systemctl status docker
如果没运行,先启动:
sudo systemctl start docker
sudo systemctl enable docker # 开机自启(可选)
第二步:将用户 ssa 加入 docker 用户组
sudo usermod -aG docker ssa
-aG 表示 append to Group,不会影响用户原有组。
第三步:重新登录 SSH 会话
这是关键!
组权限变更不会影响已存在的会话。
所以请:
关闭当前终端;
重新通过 SSH 登录:
ssh xxx@your-remote-host
⚠️ 仅执行 newgrp docker 在 VS Code Remote-SSH 环境中可能无效,因为 VS Code 会启动新的 login shell。
第四步:验证是否成功
groups
输出应包含 docker,例如:
docker ps
✅ 如果不再报错,说明成功!
🔒 安全提醒
加入 docker 组 = 获得 等效 root 权限(可通过挂载 /etc、/root 等提权)。
请确保:
你信任该用户;
服务器环境安全;
不在共享生产服务器上随意授权。
