Es gab eine Zeit, in der ich dachte, es sei egal, ob ich Docker, Windows oder Linux verwendete. Abgesehen von den unterschiedlichen Verhaltensweisen je nach Betriebssystem scheint es Unterschiede in Abhängigkeit von der Containerisierungsmethode zu geben. Es gibt zwei Hauptansätze zum Erstellen eines Containers in Windows. Eine ist die Verwendung von Hyper-V und die andere die Verwendung der Windows-Prozessisolation. Ich werde die Details weglassen, aber es scheint, dass das Verhalten von Docker (vielleicht nur komponieren) zwischen den beiden etwas anders ist, also war ich süchtig nach der Neustarteinstellung.
Aktivieren Sie die Docker-Compose-Neustarteinstellung für den Windows Server-Container.
OS:Windows Server 2019 Datacenter
Docker verfügt über eine Neustartoption, mit der Sie festlegen können, ob der Container beim Starten des Computers gestartet werden soll. Selbst wenn Sie docker-compose.yml, das in der Linux-Umgebung funktioniert hat, auf den Windows Server-Container portiert haben, konnte er nicht erfolgreich neu gestartet werden.
Als ich beim Start und Neustart den Betriebsstatus von Docker überprüfte, stellte sich heraus, dass das Standardnetzwerk, das beim Starten von Docker-Compose aktiviert wurde, beim Neustart verschwand.
Es wurde gelöst, indem die Netzwerkeinstellung mit nat external erstellt wurde.
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
Wenn Sie in Schwierigkeiten sind, lesen Sie am besten die offizielle Microsoft-Dokumentation (https://docs.microsoft.com/en-us/virtualization/windowscontainers/).
Der Inhalt dieses Artikels ist meine persönliche Meinung, nicht die offizielle Meinung der Organisation, der ich angehöre. Der Autor und die Organisation, der er angehört, sind nicht verantwortlich für Probleme, die Benutzern oder Dritten nach der Implementierung des Inhalts dieses Artikels auftreten können.