Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cannot ssh Docker Provided Container with Vagrant. Vagrant ssh doesnt work too

I am fairly new to Vagrant and Docker both. What I am trying to do here is to get a container provided via docker in Vagrant and install a small webapp using the shell provisioner.

Here is my Vagrantfile

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

The problem that i am facing here is that after the container is created it keeps running the following and eventually just stops. I can see a running docker container when i type in docker ps but it hasnt run the provisioning part. I am assuming it is because the ssh wasnt successful

==> 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...

Can someone let me know where i might be wrong? I tried changing the image as well but without success.

like image 692
Hrishikesh Avatar asked Aug 24 '26 12:08

Hrishikesh


1 Answers

First download the insecure key provided by phusion from:

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

* Remember the insecure key should be used only for development purposes.

Now, you need to enable ssh by adding the following into your Dockerfile:

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

Enable ssh and specify the key file in your 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

Up your environment

vagrant up

Now you should be able to access your container by ssh

vagrant ssh app
like image 89
Fábio Gibson Avatar answered Aug 26 '26 08:08

Fábio Gibson



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!