Proxmox VM Debian 13 (image iso) (vm-trixie02)
Proxmox VM - vm-trixie02
Installer Docker dans une machine virtuelle créée avec une image iso debian 13
- Hostname: vm-trixie02
- Utilisateur/Mp: trix/trix49
Réseau - DNS
Debian est installé avec seulement
[utilitaires du système standard]IP statique
/etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Ce fichier décrit les interfaces réseau disponibles sur votre système
# et comment les activer.
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens18
iface ens18 inet static
address 192.168.0.226
network 192.168.0.0
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 192.168.0.205
# This is an autoconfigured IPv6 interface
iface ens18 inet6 auto
Redémarrer l’interface
1
systemctl restart ifup@ens18
Vérification: ip a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:11:a6:9e:b4 brd ff:ff:ff:ff:ff:ff
altname enp0s18
altname enxbc2411a69eb4
inet 192.168.0.226/24 brd 192.168.0.255 scope global ens18
valid_lft forever preferred_lft forever
inet6 2a01:e0a:9c8:2080:be24:11ff:fea6:9eb4/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 86305sec preferred_lft 86305sec
inet6 fe80::be24:11ff:fea6:9eb4/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
DNS
- Pour les serveurs de noms DNS
- si les programmes resolvconf ou Networkmanager n’ont pas été installés
- si vous définissez l’adresse IP statique,
[/etc/resolv.conf]doit être modifié manuellement - si vous avez seulement installé OS avec [utilitaires du système standard], ils n’ont pas été installés comme suit
Vérifier
1
systemctl status resolvconf.service NetworkManager.service
Si la commande renvoie
1
2
Unit resolvconf.service could not be found.
Unit NetworkManager.service could not be found.
Il faut modifier le fichier /etc/resolv.conf
1
2
nameserver 192.168.0.205
nameserver 1.1.1.1
Poste linux
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) pour une liaison SSH avec le serveur.
1
2
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/vm-trixie02
chmod 600 ~/.ssh/vm-trixie02
Envoyer le clé publique sur la VM
1
ssh-copy-id -i ~/.ssh/vm-trixie02 trix@192.168.0.226
VM - vm-trixie02
Se connecter sur la VM via ssh
1
ssh trix@192.168.0.226
Passer en mode su
1
su -
Modifier l’accès SSH
1
nano /etc/ssh/sshd_config
Modifier les paramètres
1
2
Port 55226
PasswordAuthentication no
Relancer serveur SSH
1
systemctl restart sshd
Se connecter à la VM depuis le poste linux avec la clé SSH
1
ssh -p 55226 -i ~/.ssh/vm-trixie02 trix@192.168.0.226
Installer sudo
1
apt install sudo
Donner tous les droits à l’utilisateur
1
echo "trix ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/10-trix
Motd
Création nouveau motd
1
2
sudo apt install rsync curl tmux jq figlet git tree -y
sudo rm /etc/motd && sudo nano /etc/motd
Texte ASCII
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
____
| _ \ _ __ _____ ___ __ ___ _____ __
| |_) | '__/ _ \ \/ / '_ ` _ \ / _ \ \/ /
| __/| | | (_) > <| | | | | | (_) > <
|_| |_| \___/_/\_\_| |_| |_|\___/_/\_\
_ _ _ ___ ____
__ ___ __ ___ | |_ _ __(_)_ _(_) ___ / _ \___ \
\ \ / / '_ ` _ \ _____| __| '__| \ \/ / |/ _ \ | | |__) |
\ V /| | | | | |_____| |_| | | |> <| | __/ |_| / __/
\_/ |_| |_| |_| \__|_| |_/_/\_\_|\___|\___/_____|
_ ___ ____ _ __ ___ ___ ____ ____ __
/ |/ _ \___ \ / |/ /_ ( _ ) / _ \ |___ \|___ \ / /_
| | (_) |__) | | | '_ \ / _ \| | | | __) | __) | '_ \
| |\__, / __/ _| | (_) | (_) | |_| | / __/ / __/| (_) |
|_| /_/_____(_)_|\___/ \___(_)___(_)_____|_____|\___/
Sortir du mode su
Alias fichier .bash_aliases
1
2
3
# ~/.bash_aliases
alias journal='sudo SYSTEMD_LESS=FRXMK journalctl'
alias service='systemctl list-units --type=service --state=running'
Valider
1
source .bash_aliases
Client NFS
Installer nfs client
1
sudo apt -y install nfs-common
Créer le point de montage
1
mkdir ~/docker-data
Pour monter automatiquement les actions NFS, une entrée doit être faite dans /etc/fstab
1
sudo nano /etc/fstab
Ajouter en fin de fichier, la ligne suivante:
1
192.168.0.205:/sharenfs/docker-data /home/trix/docker-data nfs4 rw,_netdev 0 0
Recharger systemd et le montage NFS
1
2
sudo systemctl daemon-reload
sudo mount -a
Mariadb (OPTIONNEL)
Installation
1
sudo apt -y install mariadb-server
Docker
Installer docker
Installer les dépendances nécessaires au bon fonctionnement de Docker.
1
sudo apt install apt-transport-https ca-certificates curl gpg
Ajouter la clé GPG officielle Deuxièmement, nous devons ajouter le dépôt officiel de Docker à notre machine Debian afin de pouvoir récupérer les sources. Commençons par récupérer la clé GPG qui nous permettra de valider les paquets récupérés depuis le dépôt Docker :
1
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Ajouter le dépôt Docker à la liste des sources de notre machine
1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian trixie stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Installer Docker
Exécutez la commande suivante pour installer la dernière version de Docker à jour sur Debian 13.
1
2
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker est installé, le service doit être démarré et activé pour s’exécuter automatiquement au démarrage par défaut. Vérifions.
1
sudo systemctl is-active docker
renvoie active si tout est OK
Pour exécuter les commandes docker en tant qu’utilisateur non root, vous devez d’abord ajouter votre utilisateur au groupe « docker ».
1
sudo usermod -aG docker ${USER}
Dans la commande ci-dessus, ${USER} est une variable d’environnement système qui contient votre nom d’utilisateur puis exécuter la commande suivante pour activer les modifications au groupe:
1
newgrp docker
Vérifiez que Docker fonctionne :
1
docker run hello-world
Si tout est correctement configuré, vous verrez le message de bienvenue de Docker.
Version docker: docker version
Watchtower
Watchtower est un petit outil fonctionnant avec Docker et analysant les containers Docker lancés pour vérifier si une mise à jour de leur image est disponible. Si c’est le cas, la nouvelle image est téléchargée puis le container est mis à jour avec la nouvelle image.
Créer un dossier
1
2
mkdir ~/watchtower
cd ~/watchtower
le fichier docker-compose.yml
1
nano docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
environment:
DOCKER_API_VERSION: "1.52"
WATCHTOWER_POLL_INTERVAL: 86400
WATCHTOWER_CLEANUP: true
WATCHTOWER_INCLUDE_RESTARTING: true
WATCHTOWER_LOG_LEVEL: info
WATCHTOWER_HTTP_API_METRICS: false
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Lancer
1
docker compose up -d
Vérifier
1
docker logs watchtower
Info
1
2
3
4
5
time="2025-12-06T09:05:50Z" level=info msg="Watchtower 1.7.1"
time="2025-12-06T09:05:50Z" level=info msg="Using no notifications"
time="2025-12-06T09:05:50Z" level=info msg="Checking all containers (except explicitly disabled with label)"
time="2025-12-06T09:05:50Z" level=info msg="Scheduling first run: 2025-12-07 09:05:50 +0000 UTC"
time="2025-12-06T09:05:50Z" level=info msg="Note that the first check will be performed in 23 hours, 59 minutes, 59 seconds"
