Il fut un temps où je pensais que peu importe si j'utilisais Docker, Windows ou Linux. Outre la différence de comportement selon le système d'exploitation, il semble qu'il existe des différences selon la méthode de conteneurisation. Il existe deux approches principales pour créer un conteneur dans Windows. L'un consiste à utiliser Hyper-V et l'autre à utiliser l'isolation de processus Windows. Je vais omettre les détails, mais il semble que le comportement de Docker (peut-être seulement composer) est légèrement différent entre les deux, donc j'étais accro au paramètre de redémarrage.
Activez le paramètre de redémarrage de docker-compose sur le conteneur Windows Server.
OS:Windows Server 2019 Datacenter
Docker dispose d'une option de redémarrage qui vous permet de définir si vous souhaitez démarrer le conteneur au démarrage de la machine, mais même si vous avez porté docker-compose.yml qui fonctionnait dans l'environnement Linux vers le conteneur Windows Server tel quel, il n'a pas pu être redémarré avec succès.
Lors de la vérification de l'état de fonctionnement autour de Docker au démarrage et au redémarrage, il a été constaté que le réseau par défaut activé au démarrage de docker-compose avait disparu au redémarrage.
Il a été résolu en créant le paramètre réseaux avec nat external.
version: '3.5'
networks:
default:
external:
name: "nat"
services:
hoge:
build:
context: .
dockerfile: ./hoge/Dockerfile
container_name: hoge
restart: always
command: powershell
stdin_open: true
volumes:
- .\hoge:C:\hogehoge
Si vous rencontrez des problèmes, il est préférable de consulter la documentation officielle de Microsoft (https://docs.microsoft.com/en-us/virtualization/windowscontainers/).
Le contenu de cet article est mon opinion personnelle, pas l'opinion officielle de l'organisation à laquelle j'appartiens. L'auteur et l'organisation à laquelle il appartient ne sont pas responsables des problèmes qui pourraient survenir aux utilisateurs ou à des tiers après la mise en œuvre du contenu de cet article.