vscode连接docker容器及代码调试

发布网友 发布时间:2024-10-23 21:59

我来回答

1个回答

热心网友 时间:8分钟前

为了在本地的 Windows 10 系统中的 Visual Studio Code(VSCode)上连接并调试 Docker 容器,您需要遵循以下步骤,确保能够无缝地在远程 Linux 服务器上的容器中执行代码开发和调试任务。


首先,确保您的远程 Linux 服务器上已运行 Docker,然后在该服务器上执行以下命令创建一个容器:


拉取镜像:docker pull sophgo/tpuc_dev:latest


创建容器:docker run -d --gpus all --privileged --rm --name TensorTiling -p 8025:22 -v $PWD:/workspace -it sophgo/tpuc_dev:latest /bin/bash


这个命令包含:



--gpus all 设置 GPU 数量
--privileged 设置为特权模式
--rm 容器存在时删除
--name TensorTiling 容器名称
-p 8025:22 绑定宿主机端口 8025 到容器端口 22
-v $PWD:/workspace 挂载宿主机当前目录到容器的 /workspace 目录
-it 交互模式运行容器

连接到容器:docker exec -it TensorTiling /bin/bash


在容器内安装 ssh 并设置 root 密码,步骤如下:



安装 openssh:apt-get update;apt-get install openssh-server
设置 ssh 允许 root 登录:将 PermitRootLogin yes 添加到 /etc/ssh/sshd_config
重启 ssh 服务:service ssh restart
设置 root 密码:passwd root

接下来,通过 ssh 直接连接到 Docker 容器:ssh root@x.x.x.x -p 8025,其中 x.x.x.x 是远程 Linux 服务器的 IP 地址。


配置 VSCode 连接到 Docker 容器:



在 VSCode 的配置文件(例如:`~/.ssh/config`)中添加容器配置信息:例如 # Host随便起名字 Host AutoML_docker HostName x.x.x.x Port 8025 User root

使用远程 ssh 连接时,使用 root 及其密码登录。


保存并创建当前容器为新的镜像,然后创建新容器:



使用命令:docker commit -a "name" -m "新增了openssh" ab7da476849b sophgo/tpuc_dev:1.0,其中 ab7da476849b 是当前容器 ID
创建新容器:docker run -d --gpus all --privileged --rm --name TensorTiling_new -p 8026:22 -v $PWD:/workspace -it sophgo/tpuc_dev:1.0 /bin/bash
启动 ssh 服务:/etc/init.d/ssh restart 或 service ssh restart

初次安装 Docker 时,请按照以下步骤操作:



更新 apt 源及工具:sudo apt-get update
安装证书:curl -fsSL mirrors.aliyun.com/dock... | sudo apt-key add -
添加软件源信息:sudo add-apt-repository "deb [arch=amd] mirrors.aliyun.com/dock... $(lsb_release -cs) stable"
安装 Docker:sudo apt-get install docker-ce docker-ce-cli containerd.io
启动/重启 Docker:sudo systemctl start/restart docker
设置开机自启动:sudo systemctl enable/disable docker
测试安装是否成功:输入 sudo docker run hello-world,显示成功信息
查看 Docker 版本:sudo docker version
查看容器:sudo docker ps
查看镜像:sudo docker images
令 Docker 无需 root 权限:建立 docker 用户组,添加用户,设置组权限,测试无需 sudo 执行 Docker 命令。
指定 Docker 的 registry server 为国内镜像:修改 /etc/docker/daemon.json,添加 {"registry-mirrors": ["registry.docker-cn.com"]}。

遵循以上步骤,您可以成功地在 VSCode 中连接 Docker 容器并进行代码调试,确保开发流程更加高效和便捷。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com