Fully translated + good linking
This commit is contained in:
		
							
								
								
									
										174
									
								
								content/3.serveex/2.core/2.docker.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								content/3.serveex/2.core/2.docker.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,174 @@
 | 
			
		||||
---
 | 
			
		||||
navigation: true
 | 
			
		||||
title: Docker
 | 
			
		||||
main:
 | 
			
		||||
  fluid: false
 | 
			
		||||
---
 | 
			
		||||
: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](https://www.docker.com/)
 | 
			
		||||
- Install [Dockge](https://github.com/louislam/dockge) to manage stacks
 | 
			
		||||
- Install [Watchtower](https://github.com/containrrr/watchtower) to update containers
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Install Docker
 | 
			
		||||
---
 | 
			
		||||
Add the Docker repositories and GPG key:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
# 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:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
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](https://docs.docker.com/engine/install/debian/)
 | 
			
		||||
 | 
			
		||||
::alert{type="info" icon="exclamation-circle"}
 | 
			
		||||
:::list{type="info"}
 | 
			
		||||
- From here on, we assume the stacks are installed in the `/docker` folder, created using the command:
 | 
			
		||||
:::
 | 
			
		||||
    ```shell
 | 
			
		||||
    sudo mkdir /docker
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
## Install [Dockge](https://github.com/louislam/dockge) to manage and deploy containers
 | 
			
		||||
---
 | 
			
		||||
[Dockge](https://github.com/louislam/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:
 | 
			
		||||
 | 
			
		||||
```console
 | 
			
		||||
root
 | 
			
		||||
└── docker
 | 
			
		||||
    └── dockge    
 | 
			
		||||
        └── compose.yml
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Create the stack folder:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
cd /docker
 | 
			
		||||
sudo mkdir dockge
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then create the `compose.yml` file in this folder using `vim`:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
cd /docker/dockge
 | 
			
		||||
sudo vi compose.yml
 | 
			
		||||
```
 | 
			
		||||
Press `i` to enter insert mode and paste the following:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
---
 | 
			
		||||
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:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
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](https://github.com/louislam/dockge)
 | 
			
		||||
 | 
			
		||||
And there you go — Docker and a tool to easily manage your containers are ready!
 | 
			
		||||
 | 
			
		||||
## [Watchtower](https://github.com/containrrr/watchtower?tab=readme-ov-file), 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
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
---
 | 
			
		||||
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:
 | 
			
		||||
 | 
			
		||||
```properties
 | 
			
		||||
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`:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
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!
 | 
			
		||||
		Reference in New Issue
	
	Block a user