Post

Proxmox VM Debian 13 (image iso) (vm-trixie02)

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

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"
Cet article est sous licence CC BY 4.0 par l'auteur.