17/12/2025

NAS

Comment installer Virtual DSM (vDSM) avec Docker ?

I. Présentation

Ce tutoriel explique comment exécuter Virtual DSM dans un conteneur Docker, afin de profiter d'un environnement DSM prêt à l'emploi et jetable. Cette configuration est idéale à des fins de tests et de développement.

Le projet open source Virtual-DSM disponible sur GitHub permet de profiter de DSM 7.2, le système d'exploitation de Synology, via un conteneur Docker. L'occasion de tester une configuration, une application, ou un paquet, sans altérer la configuration de votre NAS.

Si vous souhaitez lancer Virtual DSM sur un NAS Synology de façon native en tant que machine virtuelle, consultez cet article (méthode officielle et recommandée) :

Disclaimer

Ce tutoriel a pour seul objectif de présenter une solution à des fins d’apprentissage, de tests ou d’expérimentation dans un environnement personnel ou de laboratoire. Il vous appartient de vérifier la conformité de votre déploiement avec les termes de la licence Synology.

La page du projet Virtual-DSM disponible sur GitHub précise : "Ce projet contient uniquement du code open source et ne distribue aucun contenu protégé par des droits d'auteur. Il ne tente pas non plus de contourner les mesures de protection des droits d'auteur. Ce projet est donc considéré comme légal au regard de toutes les lois applicables.

Cependant, en installant Virtual DSM de Synology, vous devez accepter leur contrat de licence utilisateur final, qui n'autorise pas l'installation sur du matériel non Synology. N'exécutez donc ce conteneur que sur un NAS Synology officiel, car toute autre utilisation constituerait une violation de leurs conditions générales."

II. Prérequis

Pour cette démonstration, une machine sous Debian 13 sera utilisée. Au-delà de disposer de Docker sur votre machine, celle-ci doit être compatible avec KVM. Sur un NAS Synology, vous pouvez utiliser le paquet Container Manager pour disposer de Docker.

Pour le vérifier, installez le paquet suivant :

sudo apt install cpu-checker

Puis lancez la commande kvm-ok. Si vous avez une sortie similaire à celle ci-dessous, c'est parfait !

sudo kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used

Sinon, si votre machine ne supporte pas KVM, l'erreur suivante est retournée :

INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

Passons à la suite.

III. Docker Compose de Virtual DSM

Un répertoire nommé vdsm sera créé pour stocker les données de ce projet. Il contient un sous-répertoire nommé dsm pour stocker les données du système avec persistance.

sudo mkdir /opt/docker-compose/vdsm
sudo mkdir /opt/docker-compose/vdsm/dsm

Dans le dossier /opt/docker-compose/vdsm, créez le fichier docker-compose.yml et ajoutez ce code :

services:
  dsm:
    container_name: dsm
    image: vdsm/virtual-dsm
    restart: unless-stopped
    stop_grace_period: 2m
    environment:
      DISK_SIZE: "32G"
      RAM_SIZE: "1G"
      CPU_CORES: "2"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 5000:5000
    volumes:
      - ./dsm:/storage

Quelques points d’explication à propos de cette configuration :

  • DISK_SIZE: "32G" : 32 Go de stockage seront alloués pour le disque virtuel du NAS dans le conteneur. Vous pouvez opter pour une volumétrie plus importante, comme 256 Go, selon vos besoins.
  • RAM_SIZE: "1G" : la RAM est fixée à 1 Go dédiée à ce conteneur pour l'exécution de Virtual DSM. Mettez 2 Go si vous pouvez.
  • CPU_CORES: "2" : 2 coeurs de processeurs seront alloués à ce conteneur.
  • devices: - /dev/kvm et /dev/net/tun : ces deux lignes permettent d'exposer les périphériques nécessaires à l’hôte pour la virtualisation KVM.
  • volumes: - ./dsm:/storage : le dossier créé précédemment sera lié au dossier /storage du conteneur. Cela garantit la persistance des données du système pour NAS.
  • ports: - 5000:5000 : l'interface web de DSM sera accessible sur le port 5000, qui est le port par défaut. Si vous changez par la suite dans la configuration de DSM, il conviendra de réviser la configuration.

Cette configuration est suffisante pour lancer Virtual DSM, bien que des options supplémentaires soient disponibles.

IV. Lancer le conteneur Virtual DSM

Vous pouvez lancer la construction du conteneur :

docker compose up -d

Vous pouvez consulter les journaux pour observer le déploiement de Virtual DSM :

/opt/docker-compose/vdsm$ docker compose logs -f --tail 100

Quelques secondes plus tard, vous allez pouvoir tenter une connexion à votre Virtual DSM. Saisissez simplement l'adresse IP de votre hôte Docker, en précisant le port 5000. Par exemple : http://192.168.10.200:5000.

L’assistant d’installation apparaît et il vous demandera de créer un compte administrateur, d’accepter les conditions d'utilisation, etc. Laissez-vous guider, c'est du classique et il n'y a rien de complexe puisque la partie stockage est automatiquement gérée par Virtual DSM.

Une fois l'opération terminée, le bureau de Virtual DSM se présente à vous ! Vous serez invité à installer Synology Drive Server et Synology Office, comme sur un DSM classique. Libre à vous d'installer ou non ces paquets.

À partir de là, vous pouvez commencer à configurer votre instance :

  • Créer des utilisateurs et des groupes
  • Installer des applications via le Centre de paquets ou via Docker
  • Tester la configuration de fonctionnalités de DSM
  • Etc...

Le Centre d'infos du système met bien en évidence les ressources associées au conteneur (RAM et coeurs de processeur).

V. Personnaliser la configuration de Virtual DSM

Pour aller plus loin dans la personnalisation du conteneur vDSM, il est possible d'ajouter des instructions supplémentaires au fichier docker-compose.yml. Par exemple, vous pouvez ajouter des disques supplémentaires et même profiter du pass-through.

A. Ajouter plusieurs disques virtuels

Vous pouvez ajouter d'autres disques virtuels à votre conteneur en adaptant la section environment, et en ajoutant les volumes correspondants. Par exemple :

environment:
  DISK_SIZE: "32G"
  DISK2_SIZE: "128G"
  DISK3_SIZE: "128G"
volumes:
  - ./dsm:/storage
  - ./dsm-disk2:/storage2
  - ./dsm-disk3:/storage3

Dans DSM, vous verrez plusieurs disques, vous pouvez construire un pool de stockage, etc... Pensez à bien créer les dossiers sur votre système de fichiers.

B. Pass-through de disques physiques

Si votre hôte possède des disques dédiés, vous pouvez les passer au conteneur. En effet, le pass-through de disques physiques consiste à rendre directement accessibles au conteneur des disques (ou partitions) réels de la machine hôte, comme s’ils étaient connectés directement à celui-ci.

Voici un exemple pour associer le disque sdb présent sur la machine physique au conteneur :

devices:
  - /dev/sdb:/disk1

Note : ces disques doivent être vides (pas de système de fichiers) pour que DSM puisse les formater.

C. Pass-through de GPU

Dans le même esprit, le pass-through de GPU permet d’attribuer directement une carte graphique physique de la machine hôte à un conteneur afin qu'il puisse l’utiliser comme s'il était natif. Je n'ai pas pu tester cette configuration, mais voici l'exemple fourni dans la documentation du projet :

environment:
  GPU: "Y"
devices:
  - /dev/dri

VI. Conclusion

Nous avons vu en détail comment déployer Virtual DSM avec Docker dans un lab, en évoquant différentes options de personnalisation du conteneur vDSM. Pour avoir plus d'informations, consultez la page GitHub du projet.

FAQ

Qu’est-ce que Virtual DSM (vDSM) ?

Virtual DSM est une version virtualisable du système Synology DSM permettant d’utiliser l’interface et les services Synology dans une machine virtuelle (ou un conteneur).

Peut-on installer vDSM sur un serveur classique non-Synology ?

Techniquement oui via des projets comme virtual-dsm, mais ce n’est pas couvert par la licence officielle Synology ! À bannir en production, mais peut s'avérer utile pour quelques tests temporaires.

Est-ce légal d’utiliser vDSM sur Docker ?

Synology n’autorise l’utilisation de Virtual DSM que sur ses propres appareils compatibles : toute exécution sur du matériel tiers se fait en dehors des conditions de licence.

Quels sont les prérequis techniques pour utiliser vDSM avec Docker ?

Un processeur compatible virtualisation (VT-x/AMD-V), l’accès à /dev/kvm (KVM), Docker installé (avec Docker Compose), et des ressources suffisantes (RAM, CPU, stockage).

Pourquoi faut-il /dev/kvm pour Virtual DSM ?

Au sein du conteneur Docker, vDSM fonctionne comme une VM interne : /dev/kvm permet d’utiliser l’accélération matérielle et d’améliorer les performances. Si ce prérequis n'est pas respecté, Virtual DSM ne pourra pas être déployé.

Comment sauvegarder les données d’un vDSM dans Docker ?

En sauvegardant le volume Docker associé au dossier /storage, soit /opt/docker-compose/vdsm/dsm dans cet exemple, ou via l'application Hyper Backup directement depuis DSM.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Comment installer Virtual DSM (vDSM) avec Docker ?

  • Salut !

    je reste bloquer a Extracting system partition
    rien de plus une idée ?

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.