我是DL和Docker的新手,甚至不熟悉Linux和Internet事物(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 FIRST然后访问SSH有关。有什么不同?)
2-2-1)为此,我现在必须提取一张包含pytorch,jupyternotebook的图像。我做完了
2-2-2)我需要使用带有正确命令线的图像来运行DOCKER。是什么让我感到困惑?
$docker run -it --[name] -p 8888:8888 [docker_image_with_pytorch]
这就是我发现的。我假设使用jupyter笔记本(假设我要使用4444而不是8888,而visdom则是5555而不是8097),那么我需要将端口从主机映射到docker两次,对吗?
您的问题很广泛,有些不清楚。
如果您提出具体问题,这是个好习惯(并且您可能会收到有用的回复)。
我鼓励您使用Google这些主题中的某些主题(“什么是Docker?”,“什么是SSH?”)。
就是说,因为您是菜鸟,所以我将猜测您要解决的问题。
假设(!)您的容器映像包含PyTorch和Jupyter及其所有依赖项,则Jupyter很有可能会通过port通过Web服务器(通过HTTP和我怀疑)为您提供内容:8888。
如果您docker run -it ...等效于docker run --interactive --tty ...,则应该看到容器中正在运行的进程的日志输出。这些日志应包含相关信息。
要在容器在您的位置工作站上运行后访问Jupyter笔记本,您应该可以浏览http://localhost:8888。
如果您在本地运行所有内容,则可能不需要使用SSH。如果要在远程主机上运行例如Docker 容器,则可以先通过 SSH进入远程主机,运行命令,例如,docker run...但也可以简单地将Docker客户端配置为访问远程Docker Engine。
类似于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。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。