Files
linuxkit/projects/demo/README.md
2017-04-07 15:43:03 +01:00

66 lines
2.3 KiB
Markdown

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](https://github.com/docker/infrakit) and
the [GCP plugin](https://github.com/docker/infrakit.gcp) 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](https://cloud.google.com/compute/docs/instances/connecting-to-instance)
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.