Docker install Windows Server 2016-ra

Tudom, már a cím is antagonisztikus ellentét. Ennek ellenére fel kellene tennem egy dockert a fenti cuccra (Az ügyfelet, ki kell szolgálni). A docker desktop közölte, hogy csak nem server verzióra hajlandó felmenni. Eddig még nem kellett windozer alatt ilyen "komoly" dolgot csinálnom, úgyhogy inkább kérdezek, hogy merre induljak? 

köszi,

Zamek

Hozzászólások

Haladunk :) 

Felment a docker CE, aztán elkezdett hisztizni, hogy:

error during connect: in the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect:  Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json":  open //.docker_engine: The system cannot find the file specified.

Administratorként indítottam. A tanács az volt a neten, hogy docker --privileged <command> -dal kell használni a dockert (!). 

Annak persze nincs ilyen kapcsolója. 

Kell neki registry túrás, hogy az administrator feletti system userként tudjon futni? 

Azt ugye tudod, hogy Linux-os konténer WS 2016-on nem fog egyszerűen menni, ha "hello world" komplexitásnál több kell és az is a LinuxKit-es szopással? 2019 kell és WSL támogatás...

Nem egészen. A LinuxKit egy disztribúció építő cucc, ami egy erősen csökkentett disztribúciót ad, ehhez van egy vékony emulációs réteg. A WSL(1) alatt szintén csak egy emulációs réteg van, de sokkal jobb, mint ami 2016-on elérhető, és a WSL(1) csak a Linux kernelt emulálja, nincs virtualizáció, de feltelepíthető bármilyen disztribúció. A WSL2 esetén a Hyper-V virtualizál egy teljes Linux kernelt és rajta futó disztribúciót. A Docker vonzata az, hogy ha nincs WSL (és Windows Server 2016 alá tudtommal nem készült el), akkor csak egy annál is ócskább LinuxKit fut egy kompromisszumos emulált kernellel és nagyon sok szopással.

Regebben a windowsom nem volt eleg jo a docker desktopnak, hogy wsl2 alapon menjen. Ekkor volt egy Hyper-V VM, es abban futott a docker (meg par segito szolgaltatas, lasd lentebb).

Most WSL2 van, ami szerintem ugyanugy (?) hyper-v-re  epul (a WSL1 volt egy syscall transzformacios/emulacios reteg, de sztem irto sok szopas lehetett karbantartani).

Viszont ami kb ugyanaz, az maga a linuxkit "disztro", ez emlekeim szerint mezitlabas hyper-v alatt is kb ugyanigy nezett ki, mint most wsl2 alatt:

$ nsenter
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
Digest: sha256:124c7d2707904eea7431fffe91522a01e5a861a624ee31d03372cc1d138a3126
Status: Downloaded newer image for alpine:latest
/ # uname -a
Linux docker-desktop 5.15.90.1-microsoft-standard-WSL2 #1 SMP Fri Jan 27 02:56:13 UTC 2023 x86_64 Linux
/ # cat /etc/motd
Welcome to LinuxKit!

NOTE: This system is namespaced.
The namespace you are currently in may not be the root.
System services are namespaced; to access, use `ctr -n services.linuxkit ...`
/ # ctr -n services.linuxkit containers ls
CONTAINER               IMAGE    RUNTIME
acpid                   -        io.containerd.runc.v2
allowlist               -        io.containerd.runc.v2
artifactory             -        io.containerd.runc.v2
binfmt                  -        io.containerd.runc.v2
container-filesystem    -        io.containerd.runc.v2
devenv-service          -        io.containerd.runc.v2
diagnosticsd            -        io.containerd.runc.v2
dns-forwarder           -        io.containerd.runc.v2
docker                  -        io.containerd.runc.v2
http-proxy              -        io.containerd.runc.v2
kmsg                    -        io.containerd.runc.v2
nat                     -        io.containerd.runc.v2
rngd                    -        io.containerd.runc.v2
sntpc                   -        io.containerd.runc.v2
socks                   -        io.containerd.runc.v2
syn-filter              -        io.containerd.runc.v2
trim-after-delete       -        io.containerd.runc.v2
volume-contents         -        io.containerd.runc.v2
vpnkit-forwarder        -        io.containerd.runc.v2
vpnkit-tap-vsockd       -        io.containerd.runc.v2

Szoval szerintem a dockert futtato VM user oldalrol kb ugyanugy nez ki, mindegy hogy mezitlabas hyper-v VM, vagy wsl2 felett fut.

Légy perverz. Tegyél fel VirtualBoxot, abba valami neked kellemes Linux disztrot és azon belül futtasd a docker-t. :-D

nem elég perverzió a docker windows alatt? Ettől a "powershell" nevű izétől agyf@szt kapok már így is.