不能sshdocker提供容器与stream浪汉。 stream浪ssh也不起作用

对于Vagrant和Docker来说,我都是相当新的。 我在这里要做的是通过Vagrant中的docker获得一个容器,并使用shell provisioner安装一个小的webapp。

这是我的stream浪文件

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

我在这里面临的问题是,容器创build后,它继续运行以下,最终只是停止。 我可以看到一个正在运行的docker集装箱,当我inputdocker ps但它没有运行configuration的一部分。 我假设这是因为ssh没有成功

 ==> default: Creating the container... default: Name: appEnvironment default: Image: phusion/baseimage default: Cmd: /sbin/my_init --enable-insecure-key default: Volume: /home/devops/vagrantBoxForDemo:/vagrant default: Port: 127.0.0.1:2222:22 default: default: Container created: 56a87b7cd10c22fe ==> default: Starting container... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 172.17.0.50:22 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Connection refused. Retrying... default: Warning: Connection refused. Retrying... default: Warning: Connection refused. Retrying... 

有人可以让我知道我可能是错的吗? 我试图改变形象,但没有成功。

首先下载phusion提供的不安全密钥:

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

*记住不安全的密钥只能用于开发目的。

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

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

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

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

build立你的环境

 vagrant up 

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

 vagrant ssh app 

phusion/baseimage 默认情况下没有启用不安全的私钥。 你必须创build自己的基础图像FROM phusion/baseimage

 RUN /usr/sbin/enable_insecure_key