4.9 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	navigation, title, main
| navigation | title | main | ||
|---|---|---|---|---|
| true | Docker | 
  | 
:ellipsis{left=0px width=40rem top=10rem blur=140px}
Docker
Docker, to install deployable services in seconds and manage them with just a few commands or clicks.
::alert{type="info"} 🎯 Goals:
- Install Docker
 - Install Dockge to manage stacks
 - Install Watchtower to update containers ::
 
Install Docker
Add the Docker repositories and GPG key:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
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" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Install the packages:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
That's it!
More options: Install Docker for Debian 12
::alert{type="info" icon="exclamation-circle"} :::list{type="info"}
- From here on, we assume the stacks are installed in the 
/dockerfolder, created using the command: :::sudo mkdir /docker 
::
Install Dockge to manage and deploy containers
Dockge is a web tool to create, configure, launch, and manage Docker containers. It's a simple, intuitive interface that’s lighter and easier for beginners than using the CLI or Portainer.
Configuration
File structure we will create:
root
└── docker
    └── dockge    
        └── compose.yml
Create the stack folder:
cd /docker
sudo mkdir dockge
Then create the compose.yml file in this folder using vim:
cd /docker/dockge
sudo vi compose.yml
Press i to enter insert mode and paste the following:
---
services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    container_name: dockge
    ports:
      - 3555:5001 # LAN-accessible port will be 3555
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /docker/dockge/data:/app/data
      - /docker:/docker
    environment:
      - DOCKGE_STACKS_DIR=/docker
Press Esc and type :x to save and exit.
To launch the container:
cd /docker/dockge
sudo docker compose up -d
Then go to http://yourserverip:3555 in your browser to access the login page.
More info on Dockge and how to use it
And there you go — Docker and a tool to easily manage your containers are ready!
Watchtower, to auto-update containers
Watchtower is a container that checks for updates and pulls new images automatically, just by adding a label in your containers’ compose.yml files.
Configuration
- Open Dockge in your browser
 - Click 
compose - Name the stack 
watchtower - Paste the config below into the default config area in Dockge
 
---
services:
  watchtower:
    container_name: watchtower
    image: containrrr/watchtower:latest
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - TZ=Europe/Paris
      - WATCHTOWER_SCHEDULE=${SCHEDULE}
      - WATCHTOWER_LABEL_ENABLE=true
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_REMOVE_VOLUMES=true
      # Discord notifications - uncomment if used
      #- WATCHTOWER_NOTIFICATIONS=slack
      #- WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=Watchtower
      #- WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=${WH_URL}
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
Then fill in the .env section in Dockge with the following:
SCHEDULE=
WH_URL=
| Property | Value | Examples | 
|---|---|---|
SCHEDULE | 
Cron format | 0 0 6 * * * (every day at 6 AM) | 
WH_URL | 
Your Discord webhook URL - append /slack at the end | 
https://yourdiscordserver/webhook/slack | 
To have Watchtower monitor your other containers, add this to their compose.yml:
labels:
  - com.centurylinklabs.watchtower.enable=true
Then restart the modified stacks. And that's it — you now have a solid base to start deploying the services you want!
