¿Cómo se ejecuta un contenedor Docker de Linux en Windows Server 2016?

Me pongo:

PS C:\tmp> docker pull ubuntuUsing default tag: latestlatest: Pulling from library/ubuntuno matching manifest for windows/amd64 in the manifest list entries

Ahora, antes de decir ' Duplicar!', 'asegúrate de que esté en modo experimental', como todas las otras respuestas a esta pregunta, tener.

He seguido las instrucciones de Imágenes LCOW basadas en LinuxKit, e incluso leyó y siguió los pasos para crear manualmente imágenes de hyper-v desde Ejecute contenedores de Linux en Windows.

He descargado la compilación nocturna de Docker.

Estoy corriendo en modo experimental:

PS C:\tmp> docker versionClient: Version:       master-dockerproject-2018-02-01 API version:   1.36 Go version:    go1.9.3 Git commit:    26a2a459 Built: Thu Feb  1 23:50:28 2018 OS/Arch:       windows/amd64 Experimental:  false Orchestrator:  swarmServer: Engine:  Version:      master-dockerproject-2018-02-01  API version:  1.36 (minimum version 1.24)  Go version:   go1.9.3  Git commit:   53a58da  Built:        Thu Feb  1 23:57:33 2018  OS/Arch:      windows/amd64  Experimental: true

He intentado con el --platform argumento:

PS C:\tmp> docker run --platform linux ubuntuUnable to find image 'ubuntu:latest' locallyC:\Program Files\Docker\docker.exe: Error response from daemon: invalid platform: invalid platform os "linux".See 'C:\Program Files\Docker\docker.exe run --help'.

Parece que tengo algunas diferencias con el docker info desde mi máquina de escritorio con Windows 10, donde todo funciona:

Containers: 0 Running: 0 Paused: 0 Stopped: 0Images: 0Server Version: master-dockerproject-2018-02-01Storage Driver: windowsfilter Windows:Logging Driver: json-filePlugins: Volume: local Network: ics l2bridge l2tunnel nat null overlay transparent Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslogSwarm: inactiveDefault Isolation: process# Windows 10 value:# Kernel Version: 4.9.60-linuxkit-aufsKernel Version: 10.0 14393 (14393.2007.amd64fre.rs1_release.171231-1800)# Windows 10 values:# Operating System: Docker for Windows# OSType: linuxOperating System: Windows Server 2016 StandardOSType: windowsArchitecture: x86_64CPUs: 2Total Memory: 3.997GiBName: TestsID: ...Docker Root Dir: C:\lcowDebug Mode (client): falseDebug Mode (server): true File Descriptors: -1 Goroutines: 16 System Time: 2018-02-02T14:46:53.5608784+08:00 EventsListeners: 0Registry: https://index.docker.io/v1/Labels:Experimental: trueInsecure Registries: 127.0.0.0/8Live Restore Enabled: false

Por lo tanto, la versión en el servidor de Windows no está configurada para contenedores de Linux.

Cómo lo hago cambio ¿esa configuración a la correcta?

En Docker para Windows, puede hacer clic con el botón derecho en el icono de la barra de tareas y elegir Cambiar a contenedores Linux.

¿Cómo puedes hacer lo que sea que haga, en Windows Server?

Parece que no se está ejecutando en Windows Server, versión 1709. La versión de su kernel de Windows es

Kernel Version: 10.0 14393 (14393.2007.amd64fre.rs1_release.171231-1800)

mientras que la versión del núcleo de 1709 es

Kernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)

Y 1709 solo se ofrece como instalación del núcleo del servidor. No tiene un entorno de escritorio. Por lo tanto, no podrá instalar Docker para Windows en él.

la función lcow solo está disponible en 1709 de acuerdo con https://blog.docker.com/2017/09/preview-linux-containers-on-windows/. Por lo tanto, tendrá que probar esta función en 1709.

Cuando funciona en 1709, la información de la ventana acoplable muestra lo siguiente:

C:\Users\temp>docker infoContainers: 0 Running: 0 Paused: 0 Stopped: 0Images: 3Server Version: master-dockerproject-2018-02-10Storage Driver: windowsfilter (windows) lcow (linux) Windows: LCOW:Logging Driver: json-filePlugins: Volume: local Network: ics l2bridge l2tunnel nat null overlay transparent Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslogSwarm: inactiveDefault Isolation: processKernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)Operating System: Windows Server DatacenterOSType: windowsArchitecture: x86_64CPUs: 4Total Memory: 16GiBName: winsvr1709ID: W4MK:WLAQ:3NCM:4TUT:CNKP:NPWC:B6TJ:VSC5:LKGU:LT4F:ZEAH:22X3Docker Root Dir: C:\ProgramData\dockerDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: trueInsecure Registries: 127.0.0.0/8Live Restore Enabled: false

La publicación sobre cómo ejecutar contenedores de Linux en Windows Server: https://chunliu.me/2018/02/12/running-linux-containers-on-windows-server-2016/

Puede intentar cambiar el entorno desde la línea de comandos:

& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon

@Oneiroi el problema al que se ha vinculado es para Windows 10. Ejecutar docker para Windows en Windows 10 no es un problema y funciona bien; ninguna de las resoluciones en ese ticket es relevante para mi pregunta. (Notará en la publicación de blog vinculada que dicen: “ACTUALIZACIÓN: la compatibilidad con LCOW está disponible en Windows 10 Fall Creators Update y en Windows Server 1709. En Windows Server 1709, instale EE Preview.”<This Esto es exactamente lo que estoy preguntando cómo hacer.

Redirecting… contiene información sobre cómo instalar la vista previa de` Docker EE’ , sin embargo, tenga en cuenta las advertencias, ya que hay varias funciones que faltan / no son compatibles, avíseme si esto ayuda.

@Oneiroi no ayuda. Como he señalado en mi pregunta, he hecho todas esas cosas y no funciona. No hay varias funciones marcadas como faltantes / no compatibles; no funciona en absoluto. Has probado? Si lo ha hecho, y de alguna manera funciona para usted por favor dígame exactamente lo que hizo para que funcionara.

Este parece ser un problema continuo con varias opciones para solucionarlo, marque esto "docker pull" fails in windows 10 · Issue #1100 · docker/for-win · GitHub para más detalles.

@Oneiroi 1709 NO es Windows Server 2016, que es la versión 1609.