FAQ Réseau et VM
Comment puis-je limiter le type d'accès internet autorisé par le conteneur lors de son exécution, pour l'empêcher d'être capable d'exfiltrer des données ou de télécharger du code malveillant ?
Il n'y a pas de mécanisme intégré pour cela mais cela peut être traité par un pare-feu au niveau des processus sur l'hôte. Connectez-vous au processus de l'espace utilisateur com.docker.vpnkit
et appliquez des règles où il peut se connecter (liste blanche d'URL DNS ; filtre de paquets/charge utile) et quels ports/protocoles il est autorisé à utiliser.
Puis-je empêcher les utilisateurs de lier des ports sur 0.0.0.0 ?
Il n'y a pas de moyen direct d'appliquer cela via Docker Desktop mais cela hériterait de toutes les règles de pare-feu appliquées sur l'hôte.
Quelles options existent pour verrouiller les paramètres réseau de conteneurs à un système ? Si ce n'est pas supporté, y a-t-il des conséquences à manipuler les paramètres ?
Les paramètres réseau Docker sont entièrement locaux dans la VM et n'ont aucun effet sur le système.
Puis-je appliquer des règles sur le trafic réseau de conteneurs via un pare-feu local ou un client VPN ?
Pour la connectivité réseau, Docker Desktop utilise un processus de l'espace utilisateur (com.docker.vpnkit
), qui hérite des contraintes comme les règles de pare-feu, VPN, propriétés de proxy HTTP etc, de l'utilisateur qui l'a lancé.
L'exécution de Docker Desktop pour Windows avec le backend Hyper-V permet-elle aux utilisateurs de créer des VM arbitraires ?
Non. Le nom DockerDesktopVM
est codé en dur dans le code du service, donc vous ne pouvez pas utiliser Docker Desktop pour créer ou manipuler toute autre VM.
Puis-je empêcher nos utilisateurs de créer d'autres VM lors de l'utilisation de Docker Desktop sur Mac ?
Sur Mac, c'est une opération non privilégiée de démarrer une VM, donc cela n'est pas appliqué par Docker Desktop.
Comment Docker Desktop réalise-t-il l'isolation au niveau réseau lorsque Hyper-V et/ou WSL2 est utilisé ?
Les processus VM sont les mêmes pour WSL 2 (s'exécutant dans la distribution docker-desktop
) et Hyper-V (s'exécutant dans la DockerDesktopVM
). La communication hôte/VM utilise les sockets d'hyperviseur AF_VSOCK
(mémoire partagée). Il n'utilise pas les commutateurs réseau Hyper-V ou les interfaces réseau. Tout le réseau hôte est effectué en utilisant des sockets TCP/IP normaux depuis les processus com.docker.vpnkit.exe
et com.docker.backend.exe
. Pour plus d'informations voir Comment le réseau Docker Desktop fonctionne sous le capot.