How to distribute docker-machine provisioned with some images?

Hi. I’d appreciate any idea that might help me. Here’s my challenge.

Coming monday (20 feb 2017) our company gets visited by 150 students that are supposed to do a hands-on workshop Continuous Integration. Time is limited to 90 minutes, so all time spent on getting all set up is waste. They bring their own laptops. I estimate 4 out of 5 will be Windows, predominantly Win7/8. If it’s Win10, I doubt it will be the Pro edition. The remainder is Macs with maybe some Linux enthousiasts. So “native” docker is no option, it’s got to be a solution with VirtualBox and either docker-machine or Vagrant + boot2docker.

For portability I developed the workshop using the Docker Toolbox and within the machine it’s docker-compose that does the heavy lifting. We’ve had great experiences with that, but only with small classes (20 students) on a wired network or with excellent wifi, and with longer courses where 10 or 20 minutes spent on downloading is acceptable. In this case: every minute I can win is welcome.

I can predict: when 150 students are going to download some 2 or 3 GB worth of images over one wifi access point, they haven’t got all their docker images pulled within 90 minutes.

So we’ve organised 4GB USB memory sticks to hand out, which should contain something like a VirtualBox ready to spin up, on which all required images are already pulled. With a plain VirtualBox image there’s host networking config stuff not done yet, so I don’t think it will work.

What about letting them all install the Docker Toolbox - with VirtualBox controlled by DockerMachine for the network config. As I understand it, with this setup the images themselves are stored outside the VM. Already in Quickstart Terminal (so outside docker-machine) you can list available images.

So are there easy instructions to let the students follow, and let them “inject” pre-pulled images from a USB stick onto their own computers?

Other ideas welcome… We have to prepare the sticks friday morning, time is ticking…

I wish I’d seen this earlier so I could help in time! But for the record, I’d recommend you use docker load. You could have each student install the Toolbox and load one tarball off a USB drive (or copied to their computer) to get the images.

(You’d use docker save to set the tarball up in the first place, in case that wasn’t clear.)

Yeah, I wished I saw your post earlier as well :wink:

But it’s clear: docker save + docker load would work fine indeed!

For the “alternative” record: a coworker managed to prepare a VirtualBox and detailed instructions (3 pages) how to set up the networking in VirtualBox. Next time for sure it’s going to be the toolbox approach combined with save & load!

Thanks anyway, good to know…