mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-11-04 04:50:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			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.
 | 
						|
 | 
						|
 |