5.5 KiB
Pre-requirements
-
Be comfortable with the UNIX command line
-
navigating directories
-
editing files
-
a little bit of bash-fu (environment variables, loops)
-
-
Some Docker knowledge
-
docker run,docker ps,docker build -
ideally, you know how to write a Dockerfile and build it
(even if it's aFROMline and a couple ofRUNcommands)
-
-
It's totally OK if you are not a Docker expert!
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!
class: title
Tell me and I forget.
Teach me and I remember.
Involve me and I learn.
Misattributed to Benjamin Franklin
(Probably inspired by Chinese Confucian philosopher Xunzi)
Hands-on sections
-
The whole workshop is hands-on
-
We are going to build, ship, and run containers!
-
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 to view these slides
-
Join the chat room on @@CHAT@@
]
class: in-person
Where are we going to run our containers?
class: in-person, pic
class: in-person
You get five VMs
-
Each person gets 5 private VMs (not shared with anybody else)
-
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
- Microsoft Win32 OpenSSH
- Git BASH
- MobaXterm
-
On Android, JuiceSSH (Play Store) works pretty well
-
Nice-to-have: Mosh instead of SSH, if your internet connection tends to lose packets
(available with(apt|yum|brew) install mosh; then connect withmosh user@host)
class: in-person
Connecting to our lab environment
.exercise[
- Log into the first VM (
node1) with SSH or MOSH
- Check that you can SSH (without password) to
node2:ssh node2 - Type
exitor^Dto come back to node1
]
If anything goes wrong — ask for help!
Doing or re-doing the workshop on your own?
-
Use something like Play-With-Docker or Play-With-Kubernetes
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)
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 -
During normal operations, we do not need access to the other nodes
-
If we had to troubleshoot issues, we would use a combination of:
-
SSH (to access system logs, daemon status...)
-
Docker API (to check running containers and container engine status)
-
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
