User Tools

Site Tools


howto:docker

🐳 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 -y 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

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 | 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
howto/docker.txt Β· Last modified: by nathna

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki