This is an old revision of the document!
Table of Contents
π³ Docker & Docker Compose Setup Guide for a Fresh Ubuntu VM
This page is designed for your TorresVault wiki. It provides a clean, repeatable checklist and command reference for preparing any new Ubuntu Server VM before deploying an app. This is the standard baseline you use across all your VMs.
β
β 1. Update & Upgrade the System
These commands ensure the VM is fully patched before installing anything.
sudo apt update && sudo apt upgrade -y sudo apt autoremove -y sudo reboot
β
π 2. Install Docker
The recommended officially supported installation method.
# Remove old versions (optional) sudo apt remove docker docker-engine docker.io containerd runc # Install dependencies sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release # Add Dockerβs official GPG key sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](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 Docker repository echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker Engine sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
==== Enable & Start Docker ====
sudo systemctl enable docker sudo systemctl start docker
β
π€ 3. Add Your User to the docker Group
This lets you run Docker without sudo.
sudo usermod -aG docker $USER newgrp docker
β
π¦ 4. Install Standalone Docker Compose (Optional)
For apps needing legacy docker-compose v1.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Verify:
docker-compose --version
β
π 5. Create App Directory Structure
Standard layout for TorresVault app VMs.
mkdir -p ~/apps/<app_name>/data mkdir -p ~/apps/<app_name>/config cd ~/apps/<app_name>
β
π§± 6. Create a Standard docker-compose.yml
Template to reuse for each app.
version: "3.9" services: app: image: <image> container_name: <app_name> restart: unless-stopped ports: - "PORT:PORT" volumes: - ./config:/config - ./data:/data environment: - TZ=America/New_York
β
βΆοΈ 7. Start Containers
Using Docker Compose v2:
docker compose up -d
Using docker-compose v1:
docker-compose up -d
β
π 8. Useful Docker Commands
View running containers:
docker ps
View logs:
docker logs -f <container_name>
Restart container:
docker restart <container_name>
Stop all containers:
docker stop $(docker ps -q)
Remove all stopped containers:
docker container prune
β
π οΈ 9. Useful Docker Compose Commands
Recreate after editing docker-compose.yml:
docker compose down && docker compose up -d
Validate syntax:
docker compose config
β
π 10. Full Quick Setup (Copy/Paste)
Use this block for rapid setup on every new VM.
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y sudo apt install -y ca-certificates curl gnupg lsb-release sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](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 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker $USER newgrp docker
β
If youβd like, I can also create a Portainer guide, Kubernetes migration steps, or a TorresVault VM baseline page. & Docker Compose Setup Guide for a Fresh Ubuntu VM This page is designed for your TorresVault wiki. It provides a clean, repeatable checklist and command reference for preparing any new Ubuntu Server VM before deploying an app. This is the standard baseline you use across all your VMs.
β
## β 1. Update & Upgrade the System
These commands ensure the VM is fully patched before installing anything.
```bash sudo apt update && sudo apt upgrade -y sudo apt autoremove -y sudo reboot ```
β
## π 2. Install Docker
The recommended officially supported installation method.
```bash # Remove old versions (optional) sudo apt remove docker docker-engine docker.io containerd runc
# Install dependencies sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release
# Add Dockerβs official GPG key 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 Docker repository echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ```
### Enable & Start Docker
```bash sudo systemctl enable docker sudo systemctl start docker ```
β
## π€ 3. Add Your User to the `docker` Group
This lets you run Docker without `sudo`.
```bash sudo usermod -aG docker $USER newgrp docker ```
β
## π¦ 4. Install Standalone Docker Compose (Optional)
Ubuntu now includes Docker Compose v2, but for apps needing older v1 (`docker-compose`) you can install manually.
```bash sudo curl -L βhttps://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)β -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ```
Verify:
```bash docker-compose βversion ```
β
## π 5. Create App Directory Structure
Standard layout for TorresVault app VMs.
```bash mkdir -p ~/apps/<app_name>/data mkdir -p ~/apps/<app_name>/config cd ~/apps/<app_name> ```
β
## π§± 6. Create a Standard `docker-compose.yml`
Template to reuse for each app.
```yaml version: β3.9β services:
app:
image: <image>
container_name: <app_name>
restart: unless-stopped
ports:
- "PORT:PORT"
volumes:
- ./config:/config
- ./data:/data
environment:
- TZ=America/New_York
```
β
## βΆοΈ 7. Start Containers
Using Docker Compose v2:
```bash docker compose up -d ```
Using standalone v1:
```bash docker-compose up -d ```
β
## π 8. Useful Docker Commands
### View running containers:
```bash docker ps ```
### View logs:
```bash docker logs -f <container_name> ```
### Restart container:
```bash docker restart <container_name> ```
### Stop all containers:
```bash docker stop $(docker ps -q) ```
### Remove all stopped containers:
```bash docker container prune ```
β
## π οΈ 9. Useful Docker Compose Commands
### Recreate containers after editing `docker-compose.yml`:
```bash docker compose down && docker compose up -d ```
### Validate syntax:
```bash docker compose config ```
β
## π 10. Full Quick Setup (Copy/Paste)
Use this block for rapid setup on every new VM.
```bash sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
sudo apt install -y ca-certificates curl gnupg lsb-release 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
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker sudo systemctl start docker
sudo usermod -aG docker $USER newgrp docker ```
β
If you'd like, I can also create:
* A printable PDF version * A second page for Portainer setup * A TorresVault βstandard VM templateβ page
