远程Ubuntu机器Docker Compose容器VS Code调试连接问题求助
解决Docker容器调试与daemon连接失败问题
先修复Docker daemon连接错误
检查当前用户是否在docker组
在远程Ubuntu终端执行:groups $USER要是输出里没
docker组,用sudo把用户加入组:sudo usermod -aG docker $USER加完必须退出当前SSH会话重新连接,否则权限不会生效。
验证连接状态
重新连接后,执行:docker ps能正常列出运行容器的话,再尝试用VS Code附加容器。
检查Docker Desktop配置
打开远程机器的Docker Desktop,进入Settings > Docker Engine,确认hosts配置里包含unix:///var/run/docker.sock(默认已有),修改配置后重启Docker Desktop生效。
调试容器内Python代码的替代方案(若上述修复无效)
如果还是无法直接通过VS Code附加容器,试试以下调试方式:
1. 通过Docker Compose配置远程调试端口
修改docker-compose.yml,给Python服务添加端口映射和调试启动命令:
services: your-python-service: build: . ports: - "5678:5678" # 映射调试端口到宿主机器 command: python -m debugpy --listen 0.0.0.0:5678 --wait-for-client your_script.py # 若使用Flask框架,可改为:python -m debugpy --listen 0.0.0.0:5678 --wait-for-client -m flask run
重启容器:
docker-compose up --build
2. 在VS Code中配置远程调试
在远程VS Code的.vscode/launch.json中添加调试配置:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Remote Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 }, "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "/app" # 替换为容器内代码的实际路径 } ], "justMyCode": false } ] }
启动调试器即可连接到容器内的Python进程进行调试。
3. 手动进入容器启动调试
不想修改配置的话,直接进入容器操作:
docker exec -it <容器ID或名称> bash
在容器内安装debugpy:
pip install debugpy
重启Python脚本并开启调试:
python -m debugpy --listen 0.0.0.0:5678 --wait-for-client your_script.py
再通过VS Code的调试配置连接即可。
内容的提问来源于stack exchange,提问作者TjM
相关产品推荐
相关产品推荐

