diff --git a/slides/kube/prereqs-k8s.md b/slides/common/prereqs.md
similarity index 50%
rename from slides/kube/prereqs-k8s.md
rename to slides/common/prereqs.md
index e76d4b8a..3c9a020d 100644
--- a/slides/kube/prereqs-k8s.md
+++ b/slides/common/prereqs.md
@@ -1,37 +1,22 @@
# Pre-requirements
-- Computer with internet connection and a web browser
+- Be comfortable with the UNIX command line
-- For instructor-led workshops: an SSH client to connect to remote machines
+ - navigating directories
- - on Linux, OS X, FreeBSD... you are probably all set
+ - editing files
- - on Windows, get [putty](http://www.putty.org/),
- Microsoft [Win32 OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH),
- [Git BASH](https://git-for-windows.github.io/), or
- [MobaXterm](http://mobaxterm.mobatek.net/)
+ - a little bit of bash-fu (environment variables, loops)
-- A tiny little bit of Docker knowledge
+- Some Docker knowledge
- (that's totally OK if you're not a Docker expert!)
+ - `docker run`, `docker ps`, `docker build`
----
+ - ideally, you know how to write a Dockerfile and build it
+
+ (even if it's a `FROM` line and a couple of `RUN` commands)
-class: in-person, extra-details
-
-## Nice-to-haves
-
-- [Mosh](https://mosh.org/) instead of SSH, if your internet connection tends to lose packets
-
(available with `(apt|yum|brew) install mosh`; then connect with `mosh user@host`)
-
-- [GitHub](https://github.com/join) account
-
(if you want to fork the repo)
-
-- [Slack](https://community.docker.com/registrations/groups/4316) account
-
(to join the conversation after the workshop)
-
-- [Docker Hub](https://hub.docker.com) account
-
(it's one way to distribute images on your cluster)
+- It's totally OK if you are not a Docker expert!
---
@@ -53,7 +38,7 @@ class: extra-details
- The whole workshop is hands-on
-- We will see Docker and Kubernetes in action
+- We are going to build, ship, and run containers!
- You are invited to reproduce all the demos
@@ -62,25 +47,25 @@ class: extra-details
.exercise[
- This is the stuff you're supposed to do!
-- Go to [container.training](http://container.training/) to view these slides
-- Join the chat room on @@CHAT@@
-
+- Go to [container.training](http://container.training/) to view these slides
+
+- Join the chat room on @@CHAT@@
]
---
-class: pic, in-person
+class: in-person
+
+## Where are we going to run our containers?
+
+--
+
+class: in-person

-
-
---
class: in-person
@@ -88,22 +73,82 @@ class: in-person
## You get five VMs
- Each person gets 5 private VMs (not shared with anybody else)
-- Kubernetes has been deployed and pre-configured on these machines
-- They'll remain up until the day after the tutorial
+
+- They'll remain up for the duration of the workshop
+
- You should have a little card with login+password+IP addresses
+
- You can automatically SSH from one VM to another
+- The nodes have aliases: `node1`, `node2`, etc.
+
+---
+
+class: in-person
+
+## Why don't we run containers locally?
+
+- Installing that stuff can be hard on some machines
+
+ (32 bits CPU or OS... Laptops without administrator access... etc.)
+
+- *"The whole team downloaded all these container images from the WiFi!
+
... and it went great!"* (Literally no-one ever)
+
+- All you need is a computer (or even a phone or tablet!), with:
+
+ - an internet connection
+
+ - a web browser
+
+ - an SSH client
+
+---
+
+class: in-person
+
+## SSH clients
+
+- On Linux, OS X, FreeBSD... you are probably all set
+
+- On Windows, get one of these:
+
+ - [putty](http://www.putty.org/)
+ - Microsoft [Win32 OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH)
+ - [Git BASH](https://git-for-windows.github.io/)
+ - [MobaXterm](http://mobaxterm.mobatek.net/)
+
+- On Android, [JuiceSSH](https://juicessh.com/)
+ ([Play Store](https://play.google.com/store/apps/details?id=com.sonelli.juicessh))
+ works pretty well
+
+- Nice-to-have: [Mosh](https://mosh.org/) instead of SSH, if your internet connection tends to lose packets
+
(available with `(apt|yum|brew) install mosh`; then connect with `mosh user@host`)
+
+---
+
+class: in-person
+
+## Connecting to our lab environment
+
.exercise[
+- Log into the first VM (`node1`) with SSH or MOSH
+
-- Log into the first VM (`node1`) with SSH or MOSH
- Check that you can SSH (without password) to `node2`:
```bash
ssh node2
@@ -114,10 +159,34 @@ done
]
+If anything goes wrong — ask for help!
+
+---
+
+## If doing or re-doing the workshop on your own ...
+
+- Use something like
+ [Play-With-Docker](http://play-with-docker.com/) or
+ [Play-With-Kubernetes](https://medium.com/@marcosnils/introducing-pwk-play-with-k8s-159fcfeb787b)
+
+ Zero setup effort; but environment are short-lived and
+ might have limited resources
+
+- Create your own cluster (local or cloud VMs)
+
+ Small setup effort; small cost; flexible environments
+
+- Create a bunch of clusters for you and your friends
+ ([instructions](https://github.com/jpetazzo/container.training/tree/master/prepare-vms))
+
+ Bigger setup effort; ideal for group training
+
---
## We will (mostly) interact with node1 only
+*These remarks apply only when using multiple nodes, of course.*
+
- Unless instructed, **all commands must be run from the first VM, `node1`**
- We will only checkout/copy the code on `node1`
diff --git a/slides/common/pwd.md b/slides/common/pwd.md
new file mode 100644
index 00000000..491fae2a
--- /dev/null
+++ b/slides/common/pwd.md
@@ -0,0 +1,19 @@
+## Using Play-With-Docker
+
+- Open a new browser tab to [www.play-with-docker.com](http://www.play-with-docker.com/)
+
+- Confirm that you're not a robot
+
+- Click on "ADD NEW INSTANCE": congratulations, you have your first Docker node!
+
+- When you will need more nodes, just click on "ADD NEW INSTANCE" again
+
+- Note the countdown in the corner; when it expires, your instances are destroyed
+
+- If you give your URL to somebody else, they can access your nodes too
+
+ (You can use that for pair programming, or to get help from a mentor)
+
+- Loving it? Not loving it? Tell it to the wonderful authors,
+ [@marcosnils](https://twitter.com/marcosnils) &
+ [@xetorthio](https://twitter.com/xetorthio)!
diff --git a/slides/common/thankyou.md b/slides/common/thankyou.md
index e5938330..23a5db52 100644
--- a/slides/common/thankyou.md
+++ b/slides/common/thankyou.md
@@ -7,3 +7,16 @@ Thank you!
class: title, in-person
That's all folks!
Questions?
+
+---
+
+# Links and resources
+
+- Join the conversation in the
+ [Docker Community Slack](https://community.docker.com/registrations/groups/4316)
+
+- Create a [Docker Hub](https://hub.docker.com) account
+
+- These slides (and future updates) are on:
+
+ http://container.training/
\ No newline at end of file
diff --git a/slides/dockercon.yml b/slides/dockercon.yml
index bdbe3c87..4c2f66d4 100644
--- a/slides/dockercon.yml
+++ b/slides/dockercon.yml
@@ -15,7 +15,7 @@ chapters:
- common/logistics.md
- swarm/intro.md
- common/toc.md
-- - swarm/prereqs.md
+- - common/prereqs.md
- swarm/versions.md
- common/sampleapp.md
- swarm/swarmkit.md
diff --git a/slides/kube.yml b/slides/kube.yml
index 4e93ab2c..c6347277 100644
--- a/slides/kube.yml
+++ b/slides/kube.yml
@@ -13,7 +13,7 @@ chapters:
- common/logistics.md
- kube/intro-ks.md
- common/toc.md
-- - kube/prereqs-k8s.md
+- - common/prereqs.md
- kube/versions-k8s.md
- common/sampleapp.md
- - kube/concepts-k8s.md
diff --git a/slides/lisa.yml b/slides/lisa.yml
index 6b09eb30..e2413e4e 100644
--- a/slides/lisa.yml
+++ b/slides/lisa.yml
@@ -15,7 +15,7 @@ chapters:
- common/logistics.md
- swarm/intro.md
- common/toc.md
-- - swarm/prereqs.md
+- - common/prereqs.md
- swarm/versions.md
- common/sampleapp.md
- swarm/swarmkit.md
diff --git a/slides/selfpaced.yml b/slides/selfpaced.yml
index bcc36585..ba41f922 100644
--- a/slides/selfpaced.yml
+++ b/slides/selfpaced.yml
@@ -12,7 +12,7 @@ chapters:
- common/title.md
- swarm/intro.md
- common/toc.md
-- - swarm/prereqs.md
+- - common/prereqs.md
- swarm/versions.md
- |
name: part-1
diff --git a/slides/swarm/prereqs.md b/slides/swarm/prereqs.md
deleted file mode 100644
index b3c99a5d..00000000
--- a/slides/swarm/prereqs.md
+++ /dev/null
@@ -1,226 +0,0 @@
-# Pre-requirements
-
-- Computer with internet connection and a web browser
-
-- For instructor-led workshops: an SSH client to connect to remote machines
-
- - on Linux, OS X, FreeBSD... you are probably all set
-
- - on Windows, get [putty](http://www.putty.org/),
- Microsoft [Win32 OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH),
- [Git BASH](https://git-for-windows.github.io/), or
- [MobaXterm](http://mobaxterm.mobatek.net/)
-
-- For self-paced learning: SSH is not necessary if you use
- [Play-With-Docker](http://www.play-with-docker.com/)
-
-- Some Docker knowledge
-
- (but that's OK if you're not a Docker expert!)
-
----
-
-class: in-person, extra-details
-
-## Nice-to-haves
-
-- [Mosh](https://mosh.org/) instead of SSH, if your internet connection tends to lose packets
-
(available with `(apt|yum|brew) install mosh`; then connect with `mosh user@host`)
-
-- [GitHub](https://github.com/join) account
-
(if you want to fork the repo)
-
-- [Slack](https://community.docker.com/registrations/groups/4316) account
-
(to join the conversation after the workshop)
-
-- [Docker Hub](https://hub.docker.com) account
-
(it's one way to distribute images on your cluster)
-
----
-
-class: extra-details
-
-## Extra details
-
-- This slide should have a little magnifying glass in the top left corner
-
- (If it doesn't, it's because CSS is hard — Jérôme is only a backend person, alas)
-
-- Slides with that magnifying glass indicate slides providing extra details
-
-- Feel free to skip them if you're in a hurry!
-
----
-
-## Hands-on sections
-
-- The whole workshop is hands-on
-
-- We will see Docker in action
-
-- You are invited to reproduce all the demos
-
-- All hands-on sections are clearly identified, like the gray rectangle below
-
-.exercise[
-
-- This is the stuff you're supposed to do!
-- Go to [container.training](http://container.training/) to view these slides
-- Join the chat room on @@CHAT@@
-
-]
-
----
-
-class: in-person
-
-# VM environment
-
-- To follow along, you need a cluster of five Docker Engines
-
-- If you are doing this with an instructor, see next slide
-
-- If you are doing (or re-doing) this on your own, you can:
-
- - create your own cluster (local or cloud VMs) with Docker Machine
- ([instructions](https://github.com/jpetazzo/container.training/tree/master/prepare-machine))
-
- - use [Play-With-Docker](http://play-with-docker.com) ([instructions](https://github.com/jpetazzo/container.training#using-play-with-docker))
-
- - create a bunch of clusters for you and your friends
- ([instructions](https://github.com/jpetazzo/container.training/tree/master/prepare-vms))
-
----
-
-class: pic, in-person
-
-
-
----
-
-class: in-person
-
-## You get five VMs
-
-- Each person gets 5 private VMs (not shared with anybody else)
-- They'll remain up until the day after the tutorial
-- You should have a little card with login+password+IP addresses
-- You can automatically SSH from one VM to another
-
-.exercise[
-
-
-
-- Log into the first VM (`node1`) with SSH or MOSH
-- Check that you can SSH (without password) to `node2`:
- ```bash
- ssh node2
- ```
-- Type `exit` or `^D` to come back to node1
-
-
-
-]
-
----
-
-## If doing or re-doing the workshop on your own ...
-
-- Use [Play-With-Docker](http://www.play-with-docker.com/)!
-
-- Main differences:
-
- - you don't need to SSH to the machines
-
(just click on the node that you want to control in the left tab bar)
-
- - Play-With-Docker automagically detects exposed ports
-
(and displays them as little badges with port numbers, above the terminal)
-
- - You can access HTTP services by clicking on the port numbers
-
- - exposing TCP services requires something like
- [ngrok](https://ngrok.com/)
- or [supergrok](https://github.com/jpetazzo/container.training#using-play-with-docker)
-
-
-
----
-
-class: self-paced
-
-## Using Play-With-Docker
-
-- Open a new browser tab to [www.play-with-docker.com](http://www.play-with-docker.com/)
-
-- Confirm that you're not a robot
-
-- Click on "ADD NEW INSTANCE": congratulations, you have your first Docker node!
-
-- When you will need more nodes, just click on "ADD NEW INSTANCE" again
-
-- Note the countdown in the corner; when it expires, your instances are destroyed
-
-- If you give your URL to somebody else, they can access your nodes too
-
- (You can use that for pair programming, or to get help from a mentor)
-
-- Loving it? Not loving it? Tell it to the wonderful authors,
- [@marcosnils](https://twitter.com/marcosnils) &
- [@xetorthio](https://twitter.com/xetorthio)!
-
----
-
-## We will (mostly) interact with node1 only
-
-- Unless instructed, **all commands must be run from the first VM, `node1`**
-
-- We will only checkout/copy the code on `node1`
-
-- When we will use the other nodes, we will do it mostly through the Docker API
-
-- We will log into other nodes only for initial setup and a few "out of band" operations
-
(checking internal logs, debugging...)
-
----
-
-## Terminals
-
-Once in a while, the instructions will say:
-
"Open a new terminal."
-
-There are multiple ways to do this:
-
-- create a new window or tab on your machine, and SSH into the VM;
-
-- use screen or tmux on the VM and open a new window from there.
-
-You are welcome to use the method that you feel the most comfortable with.
-
----
-
-## Tmux cheatsheet
-
-- Ctrl-b c → creates a new window
-- Ctrl-b n → go to next window
-- Ctrl-b p → go to previous window
-- Ctrl-b " → split window top/bottom
-- Ctrl-b % → split window left/right
-- Ctrl-b Alt-1 → rearrange windows in columns
-- Ctrl-b Alt-2 → rearrange windows in rows
-- Ctrl-b arrows → navigate to other windows
-- Ctrl-b d → detach session
-- tmux attach → reattach to session