Files
container.training/slides/shared/connecting.md
Jérôme Petazzoni ba376feb10 🏭️ Big refactoring of December 2025
The structure of each deck should now be:
- title slide
- logistics (for live classes)
- chat room info (for live classes)
- shared/about-slides
- */prereqs* (when relevant; mostly k8s classes)
- shared/handson
- */labs-live (for live classes)
- shared/connecting (for live classes)
- */labs-async
- toc

This is more uniform across the different courses
(live and async; containers and K8S).
2025-12-10 19:46:14 -06:00

4.1 KiB

Connecting to our lab environment


Testing the connection

  • Your instructor will tell you where to find the IP address, login, and password

.lab[

  • Connect to your lab environment with your SSH client:

    ssh `user`@`A.B.C.D`
    ssh -p `32323` `user`@`A.B.C.D`
    

    (Make sure to replace the highlighted values with the ones provided to you!)

]

You should see a prompt looking like this:

[A.B.C.D] (...) user@machine ~
$

Checking the lab environment

In Docker classes, run docker version.

The output should look like this:

.small[

Client:
 Version:           29.1.1
 API version:       1.52
 Go version:        go1.25.4 X:nodwarf5
 Git commit:        0aedba58c2
 Built:             Fri Nov 28 14:28:26 2025
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          29.1.1
  API version:      1.52 (minimum version 1.44)
  Go version:       go1.25.4 X:nodwarf5
  Git commit:       9a84135d52
  Built:            Fri Nov 28 14:28:26 2025
  OS/Arch:          linux/amd64
  Experimental:     false
  ...

]


Checking the lab environment

In Kubernetes classes, run kubectl get nodes.

The output should look like this:

$ k get nodes
NAME    STATUS   ROLES           AGE    VERSION
node1   Ready    control-plane   7d6h   v1.34.0
node2   Ready    <none>          7d6h   v1.34.0
node3   Ready    <none>          7d6h   v1.34.0
node4   Ready    <none>          7d6h   v1.34.0

If it doesn't work...

Ask an instructor or assistant to help you!


tailhist

  • The shell history of the instructor is available online in real time

  • The instructor will share a special URL with you

    (typically, the instructor's lab address on port 1088 or 30088)

  • Open that URL in your browser and you should see the history

  • The history is updated in real time

    (using a WebSocket connection)

  • It should be green when the WebSocket is connected

    (if it turns red, reloading the page should fix it)


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 cheat sheet (basic)

Tmux is a terminal multiplexer like screen.

You don't have to use it or even know about it to follow along.
But some of us like to use it to switch between terminals.
It has been preinstalled on your workshop nodes.

  • You can start a new session with tmux
    (or resume or share an existing session with tmux attach)

  • Then use these keyboard shortcuts:

    • 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 arrows → navigate within split windows

Tmux cheat sheet (advanced)

  • Ctrl-b d → detach session
    (resume it later with tmux attach)

  • Ctrl-b Alt-1 → rearrange windows in columns

  • Ctrl-b Alt-2 → rearrange windows in rows

  • Ctrl-b , → rename window

  • Ctrl-b Ctrl-o → cycle pane position (e.g. switch top/bottom)

  • Ctrl-b PageUp → enter scrollback mode
    (use PageUp/PageDown to scroll; Ctrl-c or Enter to exit scrollback)