###### Procedure
1. Run `apt udpate`
2. Install the following:
apt install ca-certificates curl
3. Create the keyrings directory with correct permissions:
install -m 0755 -d /etc/apt/keyrings
4. Save the current key from Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
5. Allow everybody to read the `docker.asc` key:
chmod a+r /etc/apt/keyrings/docker.asc
6. Add the official Docker repository to apt:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
7. Run `apt update` again
8. Install the required Docker packages:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
9. Test that Docker is installed via `docker --version`
10. Test the Docker `hello-world` image:
docker run hello-world
###### Administration
1. Create a volume for Portainer:
docker volume create portainer_data
2. Install Portainer:
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.20.3
**Note:** The version number `2.20.3` is current at the time of writing but may change in the future
3. Connect to Portainer's web interface by visiting port 9443 in the address bar, e.g.
###### Extras
1. If installing a Microsoft SQL Server for Linux container running Ubuntu, create a volume that maps to `/var/opt/mssql/data` in the container. The databases you create will persist across recreating or duplicating/editing. No additional configuration is needed.
###### Sources