gpt4 book ai didi

linux - 通过 SSH 连接到 Docker?还是 SSH 上的 docker?我需要指挥

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:59 24 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused 。它目前不接受答案。












想改进这个问题?更新问题,使其仅通过 editing this post 关注一个问题。

2年前关闭。




Improve this question




我是 DL 和 docker 的新手,甚至不熟悉 Linux 和互联网的东西(SSH 和端口.. DNS 的东西.. 其中一部分只存在于我的脑海中)。因此,我对“具体解释+命令”(或引用网站)非常满意。

我的基本问题是:

  • Docker和SSH之间的优越概念是什么? (在 Docker 上运行 SSH?还是在 SSH 上运行 Docker?或者两者都可以?)
  • 如果我想使用 SSH+Docker+Pytorch+Jupyternotebook+visdom 应该使用哪个特定命令?

    2-1)我先运行SSH(这是我实验室的服务器,因此我通常不是root用户,所以如果我想在这里运行python文件,我经常面临权限被拒绝),比如说 SSH地址是123.456.789.999

    2-2) 运行 ssh 后使用 docker (但是,我从许多帖子中发现是关于先运行 docker 然后访问 SSH .. 它有什么不同?)

    2-2-1) 所以为此,我现在必须拉出一个包含 pytorch、jupyternotebook 的图像。我已经做到了

    2-2-2) 我需要使用带有正确命令行的图像来运行 DOCKER。让我困惑的是这里。
    $docker run -it --[name] -p 8888:8888 [docker_image_with_pytorch]

  • 这就是我发现的。我假设使用 jupyter notebook( 假设我想使用 4444 而不是 8888,而 visdom 是 5555 而不是 8097 )那么我需要将端口从主机映射到 docker 两次,对吗?
    $docker run -it --[name] -p 4444:8888 -p 5555:8097 [docker_image_with_pytorch]

    最后,我需要为 SSH 链接 SSH( 比如说 SSH 端口号:22,ip:123.456.789.999,id=heyjude ),我还找到了下面的命令。
    $ ssh -L <host port>:localhost:<remote port> user@remote

    但是在我第一次运行docker时是否通常在运行docker后使用命令而不是添加选项? 如果我假设使用该命令来设置 SSH,我很困惑我需要输入哪些内容 ;(
    (主机端口 = 22 ?对于 SSH?localhost 只是文字表达?远程端口是任意的东西?)以下是我的假设..
    $ ssh -L <22>:localhost:<12345> heyjude@123.456.789.999 

    我知道这很困惑,你可能会发现我的想法是如何扭曲的。
    从头开始解释对我很有帮助..

    谢谢你。

    最佳答案

    你的问题很广泛,有些不清楚。

    如果您提出具体问题,这是一种很好的做法(您可能会收到有用的回复)。

    我鼓励您使用 Google 搜索其中的一些主题(“什么是 Docker?”、“什么是 SSH?”)。

    就是说,因为您是菜鸟,所以我将猜测您要解决的问题。

    假设(!)您有一个包含 PyTorch 和 Jupyter 及其所有依赖项的容器镜像,Jupyter 很可能会通过端口 :8888 上的 Web 服务器(我怀疑是通过 HTTP)向您提供内容。 .

    如果您 docker run -it ...相当于docker run --interactive --tty ... ,您应该会看到容器中运行的进程的日志输出。这些日志应包含相关信息。

    要在容器在您的位置工作站上运行后访问 Jupyter 笔记本,您应该可以浏览 http://localhost:8888 .

    如果您在本地运行所有内容,您可能不需要使用 SSH。如果您正在运行,例如docker 容器,在远程主机上,您可以先通过 SSH 连接到远程主机,运行命令,例如docker run...但您也可以简单地配置您的 Docker 客户端以访问远程 Docker 引擎。

    有点类似于 SSH,当使用 Docker 容器时,您可以在容器中执行命令。但是,您可以使用 docker exec .... 来做到这一点。 ;您不需要使用 SSH 与容器交互。

    容器镜像具有一个或多个静态定义的端口,容器将使用这些端口来公开其服务(通过 TCP|UDP)。运行容器时,您可以将容器端口映射到主机上的不同端口。这可能是必要的(如果容器端口已在您的主机上使用)或只是为了方便。为此,您使用 --publish=[HOST-PORT]:[CONTAINER-PORT] .对于给定的容器镜像,您不能更改 [CONTAINER-PORT]但您可以使用任何可用的[HOST-PORT] .在您的示例中 --publish=4444:8888这意味着 Jupyter (?) 服务现在可以通过 localhost:4444 在您的本地计算机上访问. Docker 端口转发来自主机的 :4444 的流量到容器的:8888 .

    !

    关于linux - 通过 SSH 连接到 Docker?还是 SSH 上的 docker?我需要指挥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631882/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com