# Container Camp > Hands-on workshop on containers and cloud-native research computing: Docker, Apptainer/Singularity, Kubernetes, Terraform, and research cloud platforms. The source repository is an Open Knowledge Format (OKF v0.2) bundle: every page carries YAML frontmatter with type, provenance (generated/sources), and lifecycle (status/stale_after) fields. Full corpus for ingestion: https://unm-carc.github.io/container-camp/llms-full.txt Every page's Markdown source (OKF frontmatter included) is served at its URL plus `index.md` — for example https://unm-carc.github.io/container-camp/getting-started/overview/index.md. ## Getting started - [Workshop overview](https://unm-carc.github.io/container-camp/getting-started/overview/): What CyVerse Container Camp covered in its Basics and Cloud Native tracks, the workshop learning objectives, and CyVerse's NSF funding. - [Code of Conduct](https://unm-carc.github.io/container-camp/getting-started/code-of-conduct/): The anti-harassment code of conduct that applied to all Container Camp attendees, speakers, staff, and volunteers. - [Pre-camp setup](https://unm-carc.github.io/container-camp/getting-started/setup/): Accounts to create before starting the lessons: GitHub and Docker Hub, plus optional CyVerse and NSF ACCESS accounts. - [Container Camp Basics schedule (March 2023)](https://unm-carc.github.io/container-camp/getting-started/schedule-basics/): Day-by-day agenda of the March 6-8, 2023 Container Camp Basics: Docker, Docker Compose, and Apptainer/Singularity. - [Cloud Native Camp schedule (August 2023)](https://unm-carc.github.io/container-camp/getting-started/schedule/): Day-by-day agenda of the August 16-18, 2023 Cloud Native Camp: Kubernetes, Terraform, and CyVerse CACAO. ## Docker - [Introduction to Docker](https://unm-carc.github.io/container-camp/docker/intro/): Run, inspect, and clean up Docker containers from the command line, mount data with volumes, and expose ports for browser-based IDEs. - [Finding the right container](https://unm-carc.github.io/container-camp/docker/registry/): Container terminology and the public registries (Docker Hub, Quay.io, BioContainers, NVIDIA NGC) to search before building your own image. - [Building Docker images](https://unm-carc.github.io/container-camp/docker/build/): Write a Dockerfile instruction by instruction (FROM, RUN, ENV, COPY, CMD, ENTRYPOINT, USER, EXPOSE), including multi-stage builds. - [Advanced Docker: volumes and bind mounts](https://unm-carc.github.io/container-camp/docker/advanced/): Create, inspect, and populate Docker volumes, and use read-write and read-only bind mounts to share host data with containers. - [GitHub Actions and Docker](https://unm-carc.github.io/container-camp/docker/actions/): Build and push Docker images to Docker Hub automatically with a GitHub Actions workflow and repository secrets. - [Multi-container applications with Docker Compose](https://unm-carc.github.io/container-camp/docker/compose/): Define and run Jupyter and RStudio together from one Compose file, manage the stack with docker compose, and deploy WebODM. ## Apptainer - [Introduction to Apptainer/Singularity](https://unm-carc.github.io/container-camp/singularity/intro/): Install Apptainer or SingularityCE and use the CLI to pull, shell, exec, run, and inspect container images, including images from Docker Hub. - [Building Apptainer/Singularity images](https://unm-carc.github.io/container-camp/singularity/advanced/): Build SIF images from Docker images, sandboxes, and definition files, with the %post, %environment, %runscript, and %labels sections explained. - [Apptainer/Singularity on HPC](https://unm-carc.github.io/container-camp/singularity/hpc/): Run containers through a Slurm batch scheduler, match MPI versions between host and container, and use GPUs with the --nv flag. ## Orchestration - [Introduction to Kubernetes](https://unm-carc.github.io/container-camp/orchestration/kubernetes/): Kubernetes concepts and terminology, connecting to an existing K3s cluster with kubectl, and launching pods, deployments, and the dashboard. - [Deploying your own Kubernetes clusters](https://unm-carc.github.io/container-camp/orchestration/kubernetes-advanced/): Deploy Zero to JupyterHub with Helm, and compare lightweight Kubernetes distributions such as minikube, MicroK8s, and K3s. - [Introduction to Terraform](https://unm-carc.github.io/container-camp/orchestration/terraform/): Install Terraform, create OpenStack application credentials and an SSH keypair, and init, apply, and destroy VMs on Jetstream2. - [Advanced Terraform: managing Docker containers](https://unm-carc.github.io/container-camp/orchestration/terraform-advanced/): Practice count, for_each, input validation, preconditions, and dynamic blocks by managing Docker containers with the Terraform Docker provider. - [CyVerse CACAO interface](https://unm-carc.github.io/container-camp/orchestration/cacao/): Log in to CACAO on Jetstream2 with ACCESS, add a cloud credential and SSH key, and launch and open a VM deployment. - [CACAO Terraform templates on the CLI](https://unm-carc.github.io/container-camp/orchestration/cacao-terraform/): Install the CACAO CLI, log in with an ACCESS token, import a Terraform template from Git, and deploy it through the CACAO UI. - [Managing a private container registry](https://unm-carc.github.io/container-camp/orchestration/registry/): Options for hosting your own container registry: the open-source Docker Registry server and Harbor, which CyVerse runs. ## Cloud - [NSF ACCESS and Jetstream2](https://unm-carc.github.io/container-camp/cloud/jetstream2/): Create an NSF ACCESS account and connect to the Jetstream2 research cloud through Exosphere, Horizon, CACAO, or the OpenStack CLI. - [Installing the OpenStack CLI](https://unm-carc.github.io/container-camp/cloud/openstack/): Install the OpenStack command-line client with pip or Homebrew and verify it before connecting to an OpenStack cloud. - [GitHub Codespaces](https://unm-carc.github.io/container-camp/cloud/codespaces/): What a development environment is, how to get educational access to GitHub Codespaces and Copilot, and how to start a Codespace. - [Creating an AWS account](https://unm-carc.github.io/container-camp/cloud/aws/): Step-by-step sign-up for an Amazon Web Services account, from contact and payment details to choosing a support plan. ## Resources - [VS Code for Kubernetes](https://unm-carc.github.io/container-camp/resources/vscode/): Set up Visual Studio Code with the Kubernetes and Docker extensions to build, deploy, and monitor applications on a cluster. - [Docker resources](https://unm-carc.github.io/container-camp/resources/docker/): Curated links for learning Docker and Docker Compose and for private or self-hosted container registries. - [Apptainer/Singularity resources](https://unm-carc.github.io/container-camp/resources/singularity/): Curated links for Apptainer, SingularityCE, and campus and national HPC container documentation. - [Kubernetes and automation resources](https://unm-carc.github.io/container-camp/resources/kubernetes/): Curated links for Kubernetes, Zero to JupyterHub, lightweight distributions, autoscaling, and Terraform. - [Camp discussion and notes](https://unm-carc.github.io/container-camp/resources/camp-notes/): Questions, answers, and hands-on notes captured during the camps, covering Docker, GitHub Actions, Jetstream2, Singularity, Kubernetes, and CACAO. ## About - [Credits](https://unm-carc.github.io/container-camp/about/credits/): CyVerse origin of Container Camp, its authors and instructors, NSF funding, the Zenodo DOI, and the CC BY 4.0 attribution. - [Contributing](https://unm-carc.github.io/container-camp/about/contributing/): How to edit pages, the OKF frontmatter contract, verifying adapted content, and building the site locally. - [For AI agents](https://unm-carc.github.io/container-camp/about/ai-agents/): How agents and harnesses should consume this site: llms.txt, per-page Markdown with OKF frontmatter, and trust signals. ## Meta - [Documentation update log](https://unm-carc.github.io/container-camp/log/): dated history of changes to this bundle. - [For AI agents](https://unm-carc.github.io/container-camp/about/ai-agents/): endpoints and trust signals for agents.