2014-11-04 85 views
0

我正在构建基于ubuntu14.04的映像,尝试启用容器上的ssh。我正在学习以下教程:https://docs.docker.com/examples/running_ssh_service/使用我自己的密钥Dockerizing SSH守护进程服务

但是,本教程仅显示如何使用密码ssh,我想使用自己的密钥ssh进入容器而不是密码。所以我可以做的vagrantfile这样的事情(码头工人作为一个供应商,并使用ansible置备):

config.ssh.username = "root" 
    config.ssh.private_key_path = "~/.ssh/my_key" 

回答

0

我有这个问题也。

不幸的是我没有一个简单的答案,但使用标准ShutIt库这样的:

https://github.com/ianmiell/shutit/blob/master/library/ssh_key/ssh_key.py

其拷贝SSH密钥的主机,因为它的建筑。

它也没有出现在图像历史中,所以你不需要将图像弄平;您可以使用ssh_key模块的finalize挂钩在构建结束时将其删除(默认,但可配置)。

允许我根据需要将其与其他模块结合使用。例如,它依赖于由ansible模块,例如:

https://github.com/ianmiell/shutit/blob/master/library/ansible/ansible.py#L64

和库/ puppet.py和库/ Hadoop的/ hadoop.py:

如果您需要与它接触的帮助我直接。

+0

我只使用Dockerfile和Vagrantfile,也是为了正确的。没有涉及到python。 Dockerfile需要哪些更改? – 2014-11-04 17:51:05

0

是否有你需要SSH的原因?

注意的非常显著的原因不这样做: http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/

您也可以作为泊坞窗V1.3的只是注入新的流程运行到容器.. 例如如果你可以ssh到主机上,然后 搬运工EXEC -IT myContainer中/斌/庆典

将终端连接到正在运行的容器......

但你可以看看一个我做了前面.. 。https://registry.hub.docker.com/u/afolarin/ubuntu_ssh/

+0

我正在使用ansible进行供应,这需要ssh到容器。 – 2014-11-07 20:50:17