---
title: "Container Images"
slug: "container-images"
tags: ["lgc"]
updated: 2024-09-09T19:03:33Z
published: 2024-09-09T19:03:33Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skillable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Container Images

Skillable Studio supports using Docker Container Images in a lab environment. Container images can be imported from [Docker Hub](https://hub.docker.com/) or other container registries.

## Create a Container Image in Skillable Studio

1. From the Skillable Studio Admin page, click **Create Container Image**.

![Container Images Admin tile](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/container-images-tile.png)
2. Populate the following fields:

| Field | Description |
| --- | --- |
| **Name** | The name of the container image on [Docker Hub](https://hub.docker.com/). The container image name needs to match the name exactly how it appears in Docker Hub. The container image will be imported from Docker Hub, based on the name. It is recommended that you use a version-specific tag (signified by a colon separator). This helps ensure that the same container image will be used over time. If you do not use a tag, the "latest" tag will be used automatically. This is useful if you intend to always use the latest version of the container, but runs a higher risk of getting out of sync with your lab's instructions and content. To find tags that are available for the container image you are using, look at the container image page in [Docker Hub](https://hub.docker.com/). It will list any available tags. It is also possible to specify an image by using a digest. This guarantees that you will use the specified image version. The format for using a digest is `image@sha256:digest`. |
| **Description** | Add description of the container image or how the image will be used in a lab. |
| **Organization** | Select the organization that will have permission to edit and use the container image. |
| **Registry** | Select the container registry where your container is managed. For more information, see our [Container Registry documentation](/v1/docs/container-registries). |
| **Size** | Select the size of the container. These size profiles will set the amount of RAM, number of processors, and will govern the number of NICsallowed to be configured on the machine. |
| **Run as User** | This optional value can be used to control the user account the container is run under. |
| **Entry Point** | Allows you to set or override the container's default entry point. `Example: /bin/bash`. |
| **Command** | Enter any commands that the container needs to function. If no commands are need, simply leave `bash` in the field. |
| **Environment Variables** | Variables can be set for items such as configuration settings, encryption keys, and external resource addresses. For moreinformation about environment variables, read [Define Environment Variables](https://docs.docker.com/compose/environment-variables/). |
| **Exposed Ports** | The port(s) that will be exposed on the container. Enter on port value per line. Each exposed port will be dynamically mapped to an external port on the lab host server when the lab is deployed. The external addresses for exposed ports can be obtained in your labs via @lab tokens. For example, an exposed port of 5000 might be referenced as: `@lab.Container(alias).ExposedPort(5000).Address`. Please note that the external port will most likely **not** be the same as the container's exposed port. The external port is 100% dynamic and not something that can be directly controlled. |
| **Display** | Select how the first exposed ports will be displayed. **Note**: Terminal and Web display will only connect to the first port that is configured on the container profile. |
| **Terminal** | Allows a terminal connection to the exposed port of the container. |
| **Web** | Allows the lab client to connect to the exposed port and display the output of that port from the container. Web display requires the lab profile to have at least one network attached. Skillable uses a proxy to secure the web application, and adds an SSL certificate, to prevent unauthorized users from accessing your content. |
| **Start path** | Allows signing in to the web application in the container, using a URL parameter. `Example: app/login`. |
| **Use Relative Links** | How the container's web application generates links to pages within the web application. Enable this option to use relative links within the container. Disabling will cause the container to use absolute links. |
| **Enabled** | Check the box to enable the container image. |

## Lab Profile Configuration

Container images are configured on lab profiles on the Basic information tab, by selecting Docker as the virtualization platform.

To configure a container image on a lab profile:

1. Navigate to the lab profile.
2. On the basic information tab, select Docker as the virtualization platform.

![Select Docker from Virtualization Platform drop-down menu](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/docker-in-virt-platform-drop-down.png)

1. After Docker is selected, a new tab will appear for containers. Click the Container tab to continue.
2. Click **Add Container Image**.
3. Use the search to find the container image you want to use and click **OK**.
4. Configure the following options:

| Field | Description |
| --- | --- |
| **Display Name** | The display name of the container image. This is how the container will be displayed in the lab to the student. |
| **Replacement Token Alias** | The alias that can be used in @lab replacement tokens to target the container image. |
| **Visible to student** | Allows the container image to be visible to the student. |
| **Default selection** | Set the lab to focus on the container as the default selection when the lab launches. |

## Related Topics

- [Container Registries](/v1/docs/container-registries)
- [Container Web Display](/v1/docs/container-web-display)
- [Container Volumes](/v1/docs/container-volumes)

Skillable Studio supports containers via Docker. Docker containers are a lightweight option compared to full Virtual Machines. Docker container images use virtualization that focuses on a specific application or software, rather than a full operating system.
