Files
linuxkit/projects/demo
Rolf Neugebauer 34af633552 infrakit: rename the Moby property to kernel+initrd
The infrakit plugin is not specific to Moby and should be able
to boot other Linux systems as long as a kernel image and
initial RAM disk are supplied. Reflect this in the property
passed to the plugin.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-10 16:12:08 +01:00
..

This directory contains files used in moby demos.

Prerequisites

Most of the scripts/files assume you are on a Mac.

  • Recent Docker for Mac installed (edge, nightly, master channel)
  • Currently, you need a custom version of VPNKit installed in Docker for Mac (see below)
  • For the GCP portion: brew install google-cloud-sdk
  • For etcd: brew install etcd
  • Infrakit: Clone infrakit and the GCP plugin for infrakit. For each, make build-in-container and then copy the contents of ./build somewhere in your path.

For some of the demos, you currently need an updated version of VPNKit for Docker for Mac. Hopefully this version will ship as default soon.

Quit docker for Mac

curl -fsSL --retry 10 -z vpnkit.tgz -o vpnkit.tgz https://circle-artifacts.com/gh/docker/vpnkit/708/artifacts/0/Users/distiller/vpnkit/vpnkit.tgz

tar xzvf vpnkit.tgz
cp Contents/MacOS/vpnkit /Applications/Docker.app/Contents/Resources/bin/

Restart Docker for Mac.

Local setup

We use a socat container to forward ports from the VM to localhost (via Docker for Mac), to make it easier to access some VMs. To build

(cd dockerfiles; docker build -t socat -f Dockerfile.socat .)

And then run:

docker run --rm -t -d -p 8080:8080 socat tcp-listen:8080,reuseaddr,fork tcp:192.168.65.100:80

This forwards local port 8080 to 192.168.65.100:80, so if you start, say the intro image, run moby run -ip 196.168.65.100 intro

GCP Setup

You probably want to change the project/zone

export CLOUDSDK_CORE_PROJECT=docker4x
export CLOUDSDK_COMPUTE_ZONE=europe-west1-d
gcloud auth login
gcloud auth application-default login

You may also want to create ssh-keys and upload them. See the Generating a new SSH key-pair section

One time configuration of the network:

gcloud compute networks create rneugeba-demo --mode auto
gcloud compute networks subnets list
# get IP subnet for rneugeba-demo
gcloud compute firewall-rules create rneugeba-demo-internal --network \
    rneugeba-demo --allow tcp,udp,icmp --source-ranges 10.128.0.0/9

The firewall setup means that all our projects networks can talk to the demo network.