Skip to content

ailispaw/docker-root-packer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DockerRoot Packer for VirtualBox and QEMU

This builds the following images with DockerRoot

  • docker-root.iso (14MB) : LiveCD image with VirtualBox Guest Addtions
  • docker-root.box (13MB) : Vagrant box with docker-root.iso and 40GB HDD
  • docker-root.qcow2 (15MB) : qcow2 image with docker-root.img and 40GB HDD

The raw docker-root images are at https://github.com/ailispaw/docker-root.

Features

  • Disable TLS of Docker for simplicity
  • In .box and .qcow2
    • Expose the official IANA registered Docker port 2375
    • 40 GB persistent disk image
  • With Vagrant
    • Forward the official IANA registered Docker port 2375
    • Support NFS synced folder
    • Support VirtualBox Shared Folder
    • Support Docker provisioner

Note) Pay attention to exposing the port 2375 without TLS, as you see the above features.

Requirements to build

Vagrant up

$ vagrant box add ailispaw/docker-root
$ vagrant init -m ailispaw/docker-root
$ vagrant up

Vagrantfile

# A dummy plugin for DockerRoot to set hostname and network correctly at the very first `vagrant up`
module VagrantPlugins
  module GuestLinux
    class Plugin < Vagrant.plugin("2")
      guest_capability("linux", "change_host_name") { Cap::ChangeHostName }
      guest_capability("linux", "configure_networks") { Cap::ConfigureNetworks }
    end
  end
end

Vagrant.configure(2) do |config|
  config.vm.define "docker-root"

  config.vm.box = "ailispaw/docker-root"
  config.vm.box_version = ">= 1.3.9"

  config.vm.synced_folder ".", "/vagrant"

  # for NFS synced folder
  # config.vm.network "private_network", ip: "192.168.33.10"
  # config.vm.synced_folder ".", "/vagrant", type: "nfs",
  #   mount_options: ["nolock", "vers=3", "udp", "noatime", "actimeo=1"]

  # for RSync synced folder
  # config.vm.synced_folder ".", "/vagrant", type: "rsync",
  #   rsync__args: ["--verbose", "--archive", "--delete", "--copy-links"]

  config.vm.provision :docker do |d|
    d.pull_images "busybox"
    d.run "simple-echo",
      image: "busybox",
      args: "-p 8080:8080 -v /usr/bin/dumb-init:/dumb-init:ro --entrypoint=/dumb-init",
      cmd: "nc -p 8080 -l -l -e echo hello world!"
  end

  config.vm.network :forwarded_port, guest: 8080, host: 8080
end

License

Copyright (c) 2015-2016 A.I. <ailis@paw.zone>

Licensed under the GNU General Public License, version 2 (GPL-2.0)
http://opensource.org/licenses/GPL-2.0

About

DockerRoot Packer for VirtualBox and QEMU

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors