Julia集群使用docker

时间:2016-11-29 18:07:35

标签: docker julia

我正在尝试使用默认的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

我正在使用以下方式运行容器:

sudo docker run -d -p 3333:22 -it --name julia-sshd julia-sshd

然后在主机上,使用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.

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

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

但我无法将这两件事情放在一起。任何帮助或建议都会被贬低。

1 个答案:

答案 0 :(得分:2)

我建议您也将Master部署在Docker容器中。它使您的环境轻松,完全可复制。

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

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

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

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

2)在这里阅读如何构建Docker映像(包括Dockerfile):

https://github.com/NaelsonDouglas/DistributedMachineLearningThesis

请告诉我您是否有改进建议。

最好

安德烈·拉格(AndréLage)