Administrator
Administrator
发布于 2025-02-13 / 2 阅读

如何在Windows上访问Ubuntu服务器的Docker容器终端

如何在Windows上访问Ubuntu服务器的Docker容器终端

以下是分步指南,帮助您在Windows上访问Ubuntu服务器的Docker容器终端,并通过PyCharm连接容器内的Python环境:


一、访问Docker容器终端

方法1:通过SSH直接访问容器(需容器内安装SSH)

  1. 容器内安装SSH服务(若尚未安装):

    # 进入容器(假设容器名称为pytorch_container)
    docker exec -it pytorch_container /bin/bash
    
    # 容器内操作:更新并安装SSH
    apt update && apt install -y openssh-server
    echo 'root:your_password' | chpasswd  # 设置root密码(不安全,仅测试用)
    service ssh start
    
    # 退出容器
    exit
    
  2. Windows访问容器终端

    • 使用 PuTTYWindows Terminal 连接:
      ssh root@<Ubuntu服务器IP> -p <容器映射的SSH端口>
      
    • 需在启动容器时映射SSH端口(默认22可能冲突):
      docker run -it -p 2222:22 --name pytorch_container pytorch/pytorch
      

方法2:通过宿主机间接访问(推荐)

  1. SSH到Ubuntu服务器

    ssh username@ubuntu_server_ip
    
  2. 进入运行中的容器

    docker exec -it pytorch_container /bin/bash
    

二、PyCharm连接容器Python环境(需Professional版)

步骤1:配置SSH远程解释器

  1. 确保容器Python路径已知

    # 进入容器查看Python路径
    docker exec -it pytorch_container which python
    # 典型路径:/usr/local/bin/python 或 /opt/conda/bin/python
    
  2. PyCharm设置

    • 打开项目 → File > Settings > Project: <项目名> > Python Interpreter
    • 点击齿轮按钮 → Add Interpreter > On SSH...
    • SSH配置
      • Host:ubuntu_server_ip
      • Port:默认22(或自定义SSH端口)
      • Username:Ubuntu服务器用户名
      • Auth:选择密码或私钥
    • Python解释器路径
      • 输入容器内的Python路径(如 /usr/local/bin/python

步骤2:配置路径映射(Optional)

  • Interpreter设置中,添加本地项目路径与容器内路径的映射:
    • Local path:C:\your_project(Windows路径)
    • Remote path:/app(容器内项目路径)

步骤3:验证环境

  • 在PyCharm中新建Python文件,输入测试代码:
    import torch
    print(torch.__version__)
    
  • 运行并检查输出是否为容器内的PyTorch版本。

三、替代方案(社区版PyCharm)

若使用PyCharm Community Edition(不支持远程解释器):

  1. 通过Docker API远程连接
    • 在Ubuntu服务器上配置Docker远程访问:
      # 编辑docker服务配置
      sudo nano /lib/systemd/system/docker.service
      # 修改ExecStart行,添加:-H tcp://0.0.0.0:2375
      ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
      # 重启Docker
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      
    • PyCharm设置
      • 安装插件:Docker(内置)
      • Settings > Build, Execution, Deployment > Docker
      • 添加新的Docker配置,选择 TCP socket,输入:tcp://ubuntu_server_ip:2375
      • 通过 Services面板管理容器,直接右键容器 → Connect Shell进入终端。

四、注意事项

  1. 安全性
    • 避免直接暴露Docker API端口(2375),建议使用SSH隧道或VPN。
    • 容器内使用SSH时,建议创建非root用户并配置密钥认证。
  2. 性能
    • 远程解释器可能延迟较高,建议将代码同步到容器内运行。
  3. 依赖同步
    • 使用 requirements.txtDockerfile确保容器环境一致性。