Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker command line to switch to running linux containers on Windows Core machine

Tags:

docker

windows

I inherited a Windows Server Core machine, and I want to run linux-based containers in docker on that machine. It is currently set up to run windows-based containers, so I want to switch to running linux containers.

When I try to use a linux-based image, I get this error:

PS C:\Program Files\Docker> docker pull my-linux-based-image
Pulling from my-linux-based-image
image operating system "linux" cannot be used on this platform

On my Windows desktop machine, I'd use the Docker Desktop context menu from the system tray to switch between linux and windows containers, but that's not available in Windows Core. Can I make this switch from the command line?

I see the suggestion to use DockerCli.exe but I don't have this installed, even after making sure I installed the latest docker package. Is there a separate cli-related package I need?

Here's the version info for the docker install on my Windows Core machine:

PS C:\Program Files\Docker> docker version
Client: Docker Engine - Enterprise
 Version:           18.09.8
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        90e30bdf98
 Built:             07/16/2019 17:13:22
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Enterprise
 Engine:
  Version:          18.09.8
  API version:      1.39 (minimum version 1.24)
  Go version:       go1.10.8
  Git commit:       90e30bdf98
  Built:            07/16/2019 17:11:04
  OS/Arch:          windows/amd64
  Experimental:     false
like image 399
Chris Farmer Avatar asked Jul 17 '19 17:07

Chris Farmer


3 Answers

Dockercli -SwitchDaemon option should help here.

$ ./DockerCli.exe
Usage: DockerCli.exe [-SwitchDaemon] [-Version]
-Version: Show the Docker for Windows version information
-SwitchDaemon: Point the Docker CLI to either Linux containers or Windows containers
-SharedDrives: List the shared drives

You can control which engine you want to switch with using option.

-SwitchLinuxEngine
-SwitchWindowsEngine

More info here.

Hope this helps.

Update:

DockerCli.exe can be found in Program Files folder.

In my case it was here /c/Program\ Files/Docker/Docker/DockerCli.exe

like image 123
mchawre Avatar answered Oct 02 '22 07:10

mchawre


You have to install Docker Enterprise to be able to switch from Windows to Linux containers. See https://computingforgeeks.com/how-to-run-docker-containers-on-windows-server-2019/ for more info.

like image 33
Kam Salisbury Avatar answered Oct 02 '22 08:10

Kam Salisbury


In powershell I Ran below exact command-

./DockerCli.exe -SwitchDaemon

NOTE- before running the above command move to this path

  **C:\Program Files\Docker\Docker** 
like image 34
kumar Avatar answered Oct 02 '22 07:10

kumar