windos远程开发配置
docker构建容器
启动容器
docker run -itd \
--name dee_ubuntu_12322 \
--hostname dee-dev \
--shm-size 64g \
--gpus all \
--privileged \
--network bridge \
-v /home/di_wang/dee/ubuntu/workspace/:/workspace \
-v /home/di_wang/dee/ubuntu/data/:/data \
-p 12322:22 \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
--restart unless-stopped \
--ulimit nofile=65536:65536 \
ubuntu:22.04 \
/bin/bash -c "
apt-get update && apt-get install -y openssh-server net-tools iproute2 openssh-sftp-server
ssh-keygen -A
mkdir -p /var/run/sshd
# 完整的 SSH 配置
cat > /etc/ssh/sshd_config << 'EOF'
Port 22
Protocol 2
PermitRootLogin yes
PasswordAuthentication yes
PubkeyAuthentication yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
EOF
echo 'root:docker123' | chpasswd
/usr/sbin/sshd -D
"
删除容器
docker rm dee_ubuntu
设置密码
docker exec -it dee_ubuntu_12322 /bin/bash
passwd
# 设置相应密码
dee2323
安装必要软件包
基础环境
docker exec -it dee_ubuntu_12322 /bin/bash
# 更新源并安装基础软件
apt-get update && apt-get install -y \
sudo vim curl wget git build-essential \
htop net-tools iputils-ping dnsutils telnet \
software-properties-common apt-transport-https \
ca-certificates gnupg lsb-release \
zlib1g-dev libssl-dev libffi-dev libsqlite3-dev libreadline-dev libbz2-dev
# 如果不成功,那么就强制指定
# 直接调用 pyenv 的 Python
~/.pyenv/shims/python --version
# 或者创建别名
alias python='~/.pyenv/shims/python'
alias pip='~/.pyenv/shims/pip'
# 测试
python --version
安装pyenv
#### 安装pyenv
curl https://pyenv.run | bash
# 配置环境变量(添加到 ~/.bashrc)
cat >> ~/.bashrc << 'EOF'
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
# eval "$(pyenv virtualenv-init -)"
EOF
# 重新加载配置
source ~/.bashrc
pyenv update
pyenv安装python
## 1.安装Python(不建议直接下载)
pyenv install 3.13.5
## 2.通过wget安装
# 查看pyenv的缓存目录(通常为 ~/.pyenv/cache),如果不存在请手动创建
mkdir -p ~/.pyenv/cache
## 因为trae里面编译器可以下载这个版本(当然也可以通过下面选择环境)
wget https://mirrors.huaweicloud.com/python/3.13.2/Python-3.13.2.tar.xz -P ~/.pyenv/cache/
pyenv install 3.13.2
## 3.设置默认版本
pyenv global 3.13.2
# 查看已安装的版本
pyenv versions
# 验证安装
python --version
pip --version
## 4.如果python版本没有变化
# 4.1 先校验 /root/.pyenv/shims 在环境变量中是不是最前面
echo $PATH
# 4.2 清除shell 哈希缓存
hash -r
# 或者,启动一个新的 Shell 会话(重新打开终端或输入 exec $SHELL)也能达到同样效果
exec $SHELL
创建python虚拟环境
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
source .venv/bin/activate
# 下载依赖
pip install -r requirements.txt
trae选择python环境
- ctrl+shift+P
- 搜索如下
select interpreter然后就能看到目前机器上所有的python环境
nvm安装
# 这里采用直接安装
wget -O- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
- 一些命令
## 换源
export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
# 查看已经安装的版本
nvm list
# 查看可安装版本(linux)
nvm ls-remote
# 查看可安装版本(windows)
nvm list available
# 安装指定版本的 Node.js 版本
nvm install **版本号
nvm install 24.11.1
# 卸载指定的Node.js版本
nvm uninstall **版本号
# 使用指定的Node.js版本
nvm use **版本号
# 查看当前版本
nvm current
# 同上:查看node当前版本
nvm version
免密登录
本地侧生成密钥对
# 在 Linux 和 Mac 上
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_linux
# 在 Windows 上
ssh-keygen -t rsa -b 2048
# 如果你只有单平台使用 ssh
ssh-keygen
服务端配置公钥
# 创建目录
mkdir ~/.ssh
# 进入目录
cd ~/.ssh
# 创建 authorized_keys 文件
touch authorized_keys
# 使用文本编辑器打开 authorized_keys 文件,并将你的公钥内容粘贴到其中
环境迁移
镜像commit
# 使用
docker commit -m="提交的描述信息" -a="作者" 容器ID/容器名称 要创建的目标镜像名:[标签名]
docker commit -m="nvm" -a="dee" dee_ubuntu_12322 dee/workspace:0.2
容器迁移
## 这里举例追加了一些新的端口
docker run -itd \
--name dee_ubuntu_12322 \
--hostname dee-dev \
--shm-size 64g \
--gpus all \
--privileged \
--network bridge \
-v /home/di_wang/dee/ubuntu/workspace/:/workspace \
-v /home/di_wang/dee/ubuntu/data/:/data \
-p 12322:22 \
-p 8989:8989 \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
--restart unless-stopped \
--ulimit nofile=65536:65536 \
dee/workspace:0.2 \
/bin/bash -c "
/usr/sbin/sshd -D
"
简单说明
docker run -itd \
--name dee_ubuntu_12322 \ # 若需同时运行新旧容器,此处须改新名,如 dee_ubuntu_12322_v2
--hostname dee-dev \
--shm-size 64g \
--gpus all \
--privileged \
--network bridge \
-v /home/di_wang/dee/ubuntu/workspace/:/workspace \
-v /home/di_wang/dee/ubuntu/data/:/data \
-p 12322:22 \ # 保留原有SSH端口映射
-p 8989:8989 \ # ★★★★★ 新增的端口映射,格式为 -p 宿主机端口:容器端口 ★★★★★
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
--restart unless-stopped \
--ulimit nofile=65536:65536 \
dee/workspace:0.1 \ # 使用你提交的镜像
/bin/bash -c "
/usr/sbin/sshd -D # 通常只需保持SSH守护进程运行
"
验证是否追加新映射端口
docker port dee_ubuntu_12322 8989
# 或直接查看容器所有映射
docker port dee_ubuntu_12322
使用docker compose管理
- 创建 docker-compose.yaml 文件
version: '3.8'
services:
dee-workspace:
image: dee/workspace:0.1
container_name: dee_ubuntu_12322
hostname: dee-dev
runtime: nvidia # 使用GPU需配置Docker的nvidia容器运行时
shm_size: '64gb'
privileged: true
network_mode: bridge
volumes:
- /home/di_wang/dee/ubuntu/workspace/:/workspace
- /home/di_wang/dee/ubuntu/data/:/data
ports:
- "12322:22" # 原有SSH端口
- "8989:8989" # 新增的后端服务端口
environment:
- TZ=Asia/Shanghai
- LANG=C.UTF-8
- LC_ALL=C.UTF-8
restart: unless-stopped
ulimits:
nofile:
soft: 65536
hard: 65536
command: /bin/bash -c "/usr/sbin/sshd -D"
- 启动服务
docker compose up -d