Julia集群使用docker

tor*_*rce 7 julia docker

我正在尝试使用默认的SSHManager连接到docker容器.这些容器只有一个正在运行的sshd,具有公钥认证和julia安装.

这是我的dockerfile:

FROM rastasheep/ubuntu-sshd
RUN apt-get update && apt-get install -y julia
RUN mkdir -p /root/.ssh
ADD id_rsa.pub /root/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

我使用以下命令运行容器:

sudo docker run -d -p 3333:22 -it --name julia-sshd julia-sshd
Run Code Online (Sandbox Code Playgroud)

然后在主机上,使用julia repl,我收到以下错误:

julia> import Base:SSHManager
julia> addprocs(["root@localhost:3333"])
stdin: is not a tty
Worker 2 terminated.
ERROR (unhandled task failure): EOFError: read end of file
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Run Code Online (Sandbox Code Playgroud)

我已经测试过我可以通过ssh连接到容器而无需密码.

我还测试了在julia repl中我可以添加一个安装了julia的常规机器到集群,它工作正常.

但我无法让这两件事情共同发挥作用.任何帮助或建议都会被贬低.

小智 2

我建议您也将 Master 部署在 Docker 容器中。它使您的环境可以轻松且完全地重现。

\n\n

我正在研究一种按需在 Docker 容器中部署 Workers 的方法。即部署在容器中的Master可以进一步部署DockerizedJuliaWorkers。它与https://github.com/gsd-ufal/Infra.jl类似,但假设 Master 和 Workers 在同一主机上运行,​​这使得事情变得不那么困难。

\n\n

这是一项正在进行的工作,我计划在下周完成。简而言之:

\n\n

1) 您需要一个简单的DockerBackend包装器来透明地运行容器、设置 SSH 并使用所有低级参数(即文件DockerizedJuliaWorker.jl)调用 addprocs:

\n\n

https://github.com/NaelsonDouglas/DistributedMachineLearningThesis/tree/master/src/docker

\n\n

2) 阅读此处如何构建 Docker 镜像(包含 Dockerfile):

\n\n

https://github.com/NaelsonDouglas/DistributedMachineLearningThesis

\n\n

如果您对如何改进有任何建议,请告诉我。

\n\n

最好的,

\n\n

Andr\xc3\xa9 拉赫。

\n