User Tools

Site Tools


howto:docker

This is an old revision of the document!


🐳 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

howto/docker.1769273605.txt.gz Β· Last modified: by nathna

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki