首页 > 解决方案 > 如何使用 conda 在无法通过 ssh 隧道访问互联网的 docker 容器中安装软件包

问题描述

我能够通过 ssh 连接到在远程服务器上运行的 docker 容器。该容器无法访问 Internet。

请求: 我想在容器中设置我的深度学习环境。

我现在可以做的事情 我的主机和 docker 容器之间的数据传输速度很快。

我不知道怎么做的事情

  1. 使用 conda 安装软件包。
  2. 使用 pip 安装软件包。

不成熟的解决方案 使用 conda 代理直接在 docker 容器内安装包。我不知道如何通过 ssh 隧道将 http/https 请求从 docker 容器转发到目的地。

我认为可能是:

  1. ~/.condarc首先通过修改为conda 配置代理服务器
proxy_servers:
    http: http://localhost:9998
    https: https://localhost:9998
  1. 然后使用以下命令从我的 PC SSH 到容器:
ssh -p port kd@mlp -R 9998:someIP:80

我试图用 localhost 或https://repo.anaconda.com/pkgs/main替换 someIP 。两者都没有帮助。

上述解决方案可行吗?ssh 命令会是什么样子?

注意到那个:

  1. 由于有些包不是 pip 提供的,所以 conda 是必须的。
  2. 我无法访问远程主机,只能通过 ssh 访问 docker 容器。
  3. 我无法修改 docker 映像或重新启动 docker 容器。

更新:

  1. 有一些方法可以离线安装包。但是,它们不是好的解决方案,因为这意味着我必须手动下载 conda/pip 包并将它们传输到相应的 docker。而且我必须手动处理每个环境。希望一些解决方案可以设置 ssh 隧道,以便我的 conda 可以访问互联网。

标签: dockersshcondaportforwarding

解决方案


推荐阅读