---
title: Docker
description: Notes on docker
showHero: false
author: wompmacho
date: '2023-11-26 01:14:53.675000+00:00'
lastmod: '2025-02-11'
tags: ['docker', 'containers', 'homelab']
---

## What is Docker?

Docker is an awesome platform that anyone hoping to get into software /
development or any homelab-er should become familiar with. Docker is a platform
designed to help developers build, share, and run container applications. The
most important aspect to docker is its ability to be implemented in version
control via simple config files. This allowing a team of people to share a code
base working in the same environments consistently.

Almost anything can be deployed as a service via docker. It is a fantastic tool
to learn about apps, software, test operating systems, do things like home
automation, run web servers, media servers, host your own proxy/reverse proxy,
email, dns, network monitoring, websites etc.

{{< rawhtml >}}
<div class="iframe-wrapper" style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
  <iframe width="" height="" src="https://www.youtube.com/embed/NPguawVjbN0?si=rCFmobnPOrK9yl--" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
{{< /rawhtml >}}

---

## Docker Environment Setup

I am doing things with Ubuntu, so for my case I will follow this [docker.com -
GUIDE](https://docs.docker.com/engine/install/ubuntu/) for setting up the
initial docker environment on my ubuntu machine and then running the test
hello-world docker container app to verify that my docker environment is
working.

- Set up Docker's apt repository.

``` bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

## Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```

- Install the Docker packages.

``` bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

- Verify that the Docker Engine installation is successful by running the
  hello-world image.

``` bash
sudo docker run hello-world
```

---

## Docker Compose

## .env Variables

## Docker Files

> [!NOTE]
> [dockerfile](https://docs.docker.com/reference/dockerfile/)
>
> Example rebuild for mkdocs with some mods
>
> ```
>  FROM squidfunk/mkdocs-material
>  RUN pip install mkdocs-macros-plugin
>  RUN pip install mkdocs-glightbox
>  ```

## Mounting remote storage

