我正在构建基于ubuntu14.04的映像,尝试在容器上启用ssh。我正在按照教程:https://docs.docker.com/examples/running_ssh_service/
但本教程仅展示如何使用密码进行ssh,我想使用自己的密钥来ssh到容器而不是密码。所以我可以在vagrantfile中做这样的事情(Docker作为提供者,并使用ansible来提供):
config.ssh.username = "root"
config.ssh.private_key_path = "~/.ssh/my_key"
答案 0 :(得分: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
和library / puppet.py和library / hadoop / hadoop.py:
如果您需要帮助,请直接与我联系。
答案 1 :(得分:0)
你需要ssh吗?
请注意非常重要的原因没有这样做: http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/
您也可以从docker v1.3开始向正在运行的容器中注入新进程。 例如如果你可以ssh到主机上,那么 docker exec -it myContainer / bin / bash
会将终端附加到正在运行的容器中......
但是你可以看看我之前做过的那个...... https://registry.hub.docker.com/u/afolarin/ubuntu_ssh/