Supported Environments
The following environments are currently supported for interactive content:
Environment | Image ID | Notes |
---|---|---|
Ubuntu 22.04 | ubuntu:22.04 | Docker installed and running |
Ubuntu 22.04 w/two hosts | ubuntu-2node:22.04 | Docker installed and running Implementation Notes |
Preconfigured with ssh key auth to shell into the second node | ||
Ubuntu 22.04 | ubuntu2204-base-image-v1:latest | Without Docker Implementation Notes |
This is faster to start and uses fewer resources than the 22.04 w/docker. If your lab does not need docker this is a good choice. | ||
Ubuntu 20.04 | ubuntu:2004 | Docker installed and running |
Ubuntu 20.04 (4GB) | ubuntu:2004-4gb | Docker installed and running on an image with 4GB of ram (note that there may be a slight startup time penalty when using this image). |
Ubuntu 20.04 (8GB) | ubuntu:2004-8gb | Docker installed and running on an image with 8GB of ram (note that there may be a slight startup time penalty when using this image). |
Rocky Linux | rocky:8.4 | |
Kubernetes 1.26 | kubernetes:1.26 | 2 nodes with kubeadm installed, nothing running. Based on Ubuntu. Designed for teaching how to use Kubernetes from scratch. Implementation Notes |
If you are planning to use the Also note that we have a permissive RBAC rule set by default. If you should like to use a restrictive RBAC rule you can, so long as you remove our permissive rule first. For example, | ||
Kubernetes 1.26 (Preconfigured) | kubernetes-running:1.26 | 2 node cluster with 1 controlplane, 1 node. Based on Ubuntu. Run launch.sh when the scenario starts to ensure cluster is running. Implementation Notes |
The cluster might still be starting when the user is connected. To provide the user with feedback, we recommend that you automatically run a script called launch.py when the user connects by calling it inside of your foreground.sh or background.sh file(s). This can be done automatically via a Foreground Script. Without running launch.py, users will see the following error when they attempt to access Kubernetes before it has started: If you are planning to use the | ||
Kubernetes Cluster 1.23 | kubernetes-cluster:1.23 | 2 nodes with kubeadm installed, nothing running. Based on Ubuntu. Designed for teaching how to use Kubernetes from scratch. Implementation Notes |
If you are planning to use the Also note that we have a permissive RBAC rule set by default. If you should like to use a restrictive RBAC rule you can, so long as you remove our permissive rule first. For example, | ||
Kubernetes Cluster 1.23 (Preconfigured) | kubernetes-cluster-running:1.23 | 2 node cluster with 1 main, 1 node. Based on Ubuntu. Run launch.sh when the scenario starts to ensure cluster is running. Implementation Notes |
With the running environment we aim that the user will always connect. However, when we have an unexpected load spike the cluster might still be starting when the user is connected. To provide the user with feedback, we recommend that you automatically run a script called launch.sh when the user connects by calling it inside of your foreground.sh or background.sh file(s). This can be done automatically via a Foreground Script. Without running launch.sh, users will see the following error when they attempt to access Kubernetes before it has started: | ||
Ansible 2.13 w/two hosts | ansible-2node:2.13 | Ansible and support packages pre-installed Implementation Notes |
Preconfigured with ssh key auth to shell into the second node | ||
Java | java:latest | Our default java envionment, currently openjdk:19 |
Java/Scala | scala:latest | Our default java environment with scala 3 |
Kali Linux | kali:2023.1 | |
Kali Linux | kali:2022.4 | |
Kotlin | kotlin:latest | Our default java environment with Kotlin 1.7 |
Python 3.11.3 | python:3.11 | |
Python 3.8 | python:3.8 | |
Django | django:3.0 | |
Anaconda | anaconda:2022.10 | This is a full anaconda (2022.10) install, including Python, PyTorch, NLTK, numpy, and scikit-learn. We recommend that Python ML labs use this environment to make startup/setup simpler and faster. |
Go | golang:1.18 | |
Rust | rust:1.67.1 | |
Ruby | ruby:3.2 | |
C# (dotnet core 7.0) | dotnet:7.0 | |
C# (dotnet core 6.0) | dotnet:6.0 | |
R | rlang:3.6.3 | |
Node.js | nodejs:18 | |
TypeScript | typescript:5.0 | |
Bash | bash:5.1 | Lightweight Linux instance without Docker |
Azure | orm-azure | Microsoft Azure cloud labs environment |
Spring Boot 3.0 | springboot:3.0 | A java 19 environment with Spring Boot 3.0 demo project in /root/demo |
NOTE: If you aren’t able to access the code links in the preceding table, please email interactivesupport@oreilly.com to request access.
Exploring the Environments (What’s Installed?)
Environments come preloaded with a number of common languages and tools. If you need to know which version of a package is currently installed (or are simply curious), open up the environment sandbox you’re interested in and run whatever version or existence commands you would like. For example, in the Ubuntu sandbox you might run:
lsb_release -a
gcc --version
perl --version
ruby --version
node --version
go version
java -version
javac -version
docker version
docker-compose version
pip --version
python --version
pip3 --version
python3 --version
dotnet --version
Or to list all packages installed:
apt list --installed > out
cat out
If you don’t see the package(s) or tool(s) you need for your labs, chances are they can be provided to the lab environment via a foreground or background script.
Deprecated Environments
The following scenario environments will soon be deprecated and/or are no longer supported. Image IDs in gray
will soon reach end-of-life; image IDs in red
are no longer supported and will not be accessible by learners on the platform:
Name | Image ID |
---|---|
Bash | bash1804 |
Docker | docker |
Ubuntu | ubuntu:1804 , ubuntu:1904 , ubuntu:1604 , ubuntu |
Kubernetes | kubernetes-cluster , kubernetes-cluster:1.14 , kubernetes-cluster:1.18 |
Kubernetes Running | kubernetes-cluster-running , kubernetes-cluster-running:1.14 , kubernetes-cluster-running:1.18 |
R | rlang , rlang:3.4 |
Java/Scala | openjdk:15 |
Kotlin | kotlin:1.3.61 |
Python | python:3.6 , python:3.7 |
Rust | rust:1.44.1 |
Node | nodejs:12 |
Please be sure to select a newer version of the desired environment from the preceding list; if you have questions or are concerned about updating existing interactive content, please reach out to your editor or technical instructional designer.