无法使用Vagrant SSH Docker提供的容器.流浪的SSH也不起作用

前端之家收集整理的这篇文章主要介绍了无法使用Vagrant SSH Docker提供的容器.流浪的SSH也不起作用 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我对Vagrant和Docker都是陌生的.
我要在这里做的是通过Vagrant中的docker提供一个容器,并使用Shell Provisioner安装一个小型Webapp.

这是我的Vagrantfile

  1. Vagrant.configure(2) do |config|
  2. # config.vm.provision :shell,path: "bootstrap.sh"
  3. config.vm.provision :shell,inline: 'echo Hi there !!!'
  4. config.vm.provider :docker do |d|
  5. d.name="appEnvironment"
  6. d.image = "phusion/baseimage"
  7. d.remains_running = true
  8. d.has_ssh = true
  9. d.cmd = ["/sbin/my_init","--enable-insecure-key"]
  10. end
  11. end

我在这里面临的问题是,在创建容器之后,它会继续运行以下内容,最终只是停止.
当我输入docker ps时,我可以看到一个正在运行的docker容器,但它没有运行配置部分.我假设这是因为ssh没有成功

  1. ==> default: Creating the container...
  2. default: Name: appEnvironment
  3. default: Image: phusion/baseimage
  4. default: Cmd: /sbin/my_init --enable-insecure-key
  5. default: Volume: /home/devops/vagrantBoxForDemo:/vagrant
  6. default: Port: 127.0.0.1:2222:22
  7. default:
  8. default: Container created: 56a87b7cd10c22fe
  9. ==> default: Starting container...
  10. ==> default: Waiting for machine to boot. This may take a few minutes...
  11. default: SSH address: 172.17.0.50:22
  12. default: SSH username: vagrant
  13. default: SSH auth method: private key
  14. default: Warning: Connection refused. Retrying...
  15. default: Warning: Connection refused. Retrying...
  16. default: Warning: Connection refused. Retrying...

有人可以让我知道我可能在哪里吗?我也尝试更改图像,但没有成功.

最佳答案
首先从以下位置下载phusion提供的不安全密钥:

  1. https://github.com/phusion/baseimage-docker/blob/master/image/insecure_key

*请记住,不安全的密钥应仅用于开发目的.

现在,您需要通过在Dockerfile中添加以下内容来启用ssh:

  1. FROM phusion/baseimage
  2. RUN rm -f /etc/service/sshd/down
  3. RUN /etc/my_init.d/00_regen_ssh_host_keys.sh
  4. RUN /usr/sbin/enable_insecure_key

启用ssh并在Vagrantfile中指定密钥文件

  1. Vagrant.configure("2") do |config|
  2. config.vm.define "app" do |app|
  3. app.vm.provider "docker" do |d|
  4. d.build_dir = "."
  5. d.cmd = ["/sbin/my_init","--enable-insecure-key"]
  6. d.has_ssh = true
  7. end
  8. end
  9. config.ssh.username = "root"
  10. config.ssh.private_key_path = "path/to/your/insecure_key"
  11. end

改善环境

  1. vagrant up

现在您应该可以通过ssh访问您的容器

  1. vagrant ssh app

猜你在找的Docker相关文章