如何搭建TRAE IDE 连接到容器开发环境

参考文档:

如何使用 Trae 连接到 Devbox 启动的 Docker

trae链接到服务器的docker环境

1 首先确保你的容器内有 OpenSSH 服务

以ubuntu系统为例,选择示例的其中一种方法即可。

1.1 Docker 示例1:使用dockerfile创建一个新容器

  1. 步骤1:创建容器可以将下面文件保存在一个bash脚本中,如trae-docker.sh
Bash 复制代码
mkdir -p temp_docker
cat > temp_docker/Dockerfile <<'EOF'
FROM <your_image>
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo <'root:123'> | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
EOF
cd temp_docker
docker build -t <docker-image> .
启动 Docker 并暴露 SSH 服务:
  • <your_image>:替换为需要的基础镜像名称

  • <'root:123'>:设置root的账号密码,这里设置为123

  • <docker-image>:构建的docker的目标镜像名称

比如:我完整的trae-docker.sh文件是:

Bash 复制代码
mkdir -p temp_docker
cat > temp_docker/Dockerfile <<'EOF'
FROM swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-950-ubuntu22.04-py3.12-devel
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:123' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
EOF
cd temp_docker
docker build -t trae-docker .
  1. 步骤2:执行trae-docker.sh
Bash 复制代码
[jun@localhost jun]$ bash trae-docker.sh
Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-950-ubuntu22.04-py3.12-devel
 ---> db3ee0438d53
Step 2/7 : RUN apt-get update && apt-get install -y openssh-server
 ---> Running in 6925413c114b
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1312 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1615 kB]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [7332 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [4426 kB]
Get:9 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [4089 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [7619 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [35.6 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [82.8 kB]
...
...
...
 ---> 851ce430c82e
Step 3/7 : RUN mkdir /var/run/sshd
 ---> Running in daf7ff502b1f
Removing intermediate container daf7ff502b1f
 ---> b322c196eb4e
Step 4/7 : RUN echo 'root:123' | chpasswd
 ---> Running in d4f46c6cdcfe
Removing intermediate container d4f46c6cdcfe
 ---> 144bf3af6ce6
Step 5/7 : RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
 ---> Running in 444a1973aa70
Removing intermediate container 444a1973aa70
 ---> e574a8379422
Step 6/7 : EXPOSE 22
 ---> Running in d068032d1448
Removing intermediate container d068032d1448
 ---> 5af58666f4c5
Step 7/7 : CMD ["/usr/sbin/sshd", "-D"]
 ---> Running in 927d748a2e05
Removing intermediate container 927d748a2e05
 ---> 1efd925ac498
Successfully built 1efd925ac498
Successfully tagged trae-docker:latest
  1. 步骤3:启动 Docker 并暴露 SSH 服务
Bash 复制代码
docker run -d -p2222:22 trae-docker

1.2 Docker 示例2:基于已有容器创建

  1. 步骤1:创建容器
Bash 复制代码
docker run -itd --name <trae-docker> -p 2222:22 -e DISPLAY=$DISPLAY --dns 8.8.8.8 --dns 114.114.114.114  <osrf/ros:humble-desktop-full> /bin/bash

ssh默认端口是22,将2222映射到22使得本地能访问,DISPLAY=$DISPLAY为了docker显示图片,dns不设置的话docker里面ssh安装不上!

  • <trae-docker>:定义名称

  • <osrf/ros:humble-desktop-full>:基础镜像名称

完整命令如:

Bash 复制代码
[jun@localhost jun]$ docker run -itd --name trae-docker-1 -p 2222:22 -e DISPLAY=$DISPLAY --dns 8.8.8.8 --dns 114.114.114.114  swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-950-ubuntu22.04-py3.12-devel /bin/bash
35abc26d0c3f870a41958720412bd55242b7ee65ae62d9520072b1a9b83c2fbe
  1. 步骤2:在docker里面安装ssh

进入容器

Bash 复制代码
docker exec -it trae-docker-1 /bin/bash

安装ssh并启动sshd服务:

Bash 复制代码
apt-get update
apt-get install -y openssh-server
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
echo 'root:123' | chpasswd
service ssh start

密码123可以自己改。

2 桌面IDE端进行连接验证

2.1 Docker 示例1:使用dockerfile创建一个新容器

69b25f901b6a是创建的容器,表明在容器是能够直接连通的。

2.2 Docker 示例2:基于已有容器创建

35abc26d0c3f是创建的容器,表明在容器是能够直接连通的。

3 桌面端IDE端,配置以下 ~/ssh/config

  1. 步骤1:在docker里面安装ssh
Plain 复制代码
Host <linux>
    HostName <10.x.x.x>
    User <root>

Host <docker-container>
    HostName <10.x.x.x>
    Port 2222
    User root
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
  • <linux>:linux服务器的名称,ip或者自定义命名都行

  • <root>:linux服务器账户名称和容器名称,可以是不同账户。

  • <10.x.x.x>:inux服务器的ip

  • <docker-container>:容器的名字,同样自定义命名就行。

比如配置如下:

步骤2:重启IDE

重启IDE后,就会看到"SSH连接目标"中看配置后的docker容器,然后连接:

不出意外的话,连接成功之后,如下:

69b25f901b6a是创建的容器,表明已连接成功了。

4 备注

关于以下2个选项的配置建议不配置,我这边配置后是连接失败的。

Bash 复制代码
HostName localhost
ProxyJump A5
相关推荐
寒冰碧海1 小时前
大模型部署从0到1(一):通用环境全流程准备|NVIDIA驱动+Docker+NVIDIA Container Toolkit
运维·docker·容器
hj2862512 小时前
K8S 核心组件与资源概念 + 带注释命令 + 实操案例版笔记
笔记·容器·kubernetes
nece0013 小时前
Kubernetes v1.36.0 + Ubuntu24.04 + containerd 2.x WordPress 完整部署文档
云原生·容器·kubernetes
hdsoft_huge3 小时前
SpringBoot 系列 20:Jar 打包 + Docker 容器化 + Compose 一键部署|服务器上线 & 零停机平滑升级全教程
spring boot·docker·jar
你想考研啊3 小时前
七、Docker 容器 + Docker Compose单机部署理发店系统
docker·容器·composer
skywalk81636 小时前
TRAE AI 创造力大赛 - 趣赢分析器
人工智能·trae
未来可期丶6 小时前
【开发环境】Windows+Docker Desktop+WSL2最佳实践
windows·docker·docker desktop·wsl2
AOwhisky17 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm