linux SSH到Docker?或SSH上的Docker?,我需要命令[已关闭]

yhuiod9q  于 2022-11-22  发布在  Linux
关注(0)|答案(1)|浏览(146)

已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

三年前就关门了。
Improve this question
我对DL和Docker是新手,甚至不熟悉Linux和互联网的东西(SSH和端口.. DNS的东西..其中一部分只存在于我的脑海中)。因此,我会很高兴与“具体解释+命令”(或参考网站)。
我的基本问题是:

  1. Docker和SSH之间的上级概念是什么?(在Docker上运行SSH?或在SSH上运行Docker?或两者都可以?)
    1.如果我想使用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、jupyterbotebook。我已经完成了
    2-2-2)我需要使用带有适当命令行的图像来运行DOCKER。让我困惑的是这里。
$docker run -it --[name] -p 8888:8888 [docker_image_with_pytorch]

这是我发现。我假设使用jupyter笔记本电脑(假设我想使用4444而不是8888,visdom为5555而不是8097),那么我需要将端口从主机Map到Docker两次,这对吗?

$docker run -it --[name] -p 4444:8888 -p 5555:8097 [docker_image_with_pytorch]

最后,我需要链接SSH(假设SSH端口号22为常规端口,IP为123.456.789.999,id=heyjude)对于SSH,我还找到了下面的命令。

$ 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

我知道这是如此混乱,你可能会发现我的想法是多么扭曲..这将是非常有帮助的,我解释从头开始..

  • 谢谢-谢谢
qnyhuwrf

qnyhuwrf1#

你的问题有点不清楚,我猜猜你想解决什么问题。
假设(!)您有一个包含PyTorch和Jupyter及其所有依赖项的容器映像,Jupyter很可能会通过Web服务器(我怀疑是通过HTTP)在端口:8888上为您提供内容。
如果您使用docker run -it ...(相当于docker run --interactive --tty ...),您应该会看到在容器中执行之行程序的记录输出。这些记录应该包含相关信息。
一旦容器在您的位置工作站上运行,要访问Jupyter Notebook,您应该能够只浏览http://localhost:8888
如果你在本地运行所有的东西,你可能不需要使用SSH。如果你在远程主机上运行Docker container,你 * 可以 * 首先SSH到远程主机,运行命令,例如docker run...,但是你 * 也可以 * 简单地配置你的Docker客户端来访问远程Docker引擎。
有些类似于SSH,当使用Docker容器时,您可以在容器中执行命令。您不需要使用SSH与容器交互。
容器映像具有一个或多个静态定义的端口,容器将使用这些端口来公开其服务(通过TCP|当你运行container时,你可以将container端口Map到你主机上的不同端口。这可能是必要的(如果容器端口已经在你的主机上使用)或者只是为了方便。要做到这一点,你可以使用--publish=[HOST-PORT]:[CONTAINER-PORT]。对于一个给定的容器映像,您不能更改[CONTAINER-PORT],但可以使用任何可用的[HOST-PORT]。在您的示例中,--publish=4444:8888表示Jupyter(?)服务现在可以通过localhost:4444在本地计算机上访问。Docker端口将流量从主机的:4444转发到容器的:8888

相关问题