Docker命令行切换到Windows Core计算机上正在运行的linux容器

Chr*_*mer 4 windows docker

我继承了Windows Server Core计算机,并且希望在该计算机上的docker中运行基于Linux的容器。当前已将其设置为运行基于Windows的容器,因此我想切换为运行linux容器。

当我尝试使用基于Linux的映像时,出现以下错误:

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
Run Code Online (Sandbox Code Playgroud)

在Windows台式机上,我将使用系统托盘中的Docker桌面上下文菜单在linux和Windows容器之间进行切换,但这在Windows Core中不可用。我可以从命令行进行此切换吗?

我看到了可以使用的建议,DockerCli.exe但即使确保已安装最新的docker软件包,也没有安装此建议。我需要单独的与cli相关的软件包吗?

这是Windows Core计算机上docker安装的版本信息:

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
Run Code Online (Sandbox Code Playgroud)

San*_*noj 6

在 powershell 中我运行了下面的确切命令-

./DockerCli.exe -SwitchDaemon
Run Code Online (Sandbox Code Playgroud)

注意-在运行上述命令之前移动到此路径

C:\Program Files\Docker\Docker
Run Code Online (Sandbox Code Playgroud)


mch*_*wre 5

Dockercli -SwitchDaemon选项在这里应该有所帮助。

$ ./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
Run Code Online (Sandbox Code Playgroud)

您可以使用选项控制要切换的引擎。

-SwitchLinuxEngine
-SwitchWindowsEngine
Run Code Online (Sandbox Code Playgroud)

更多信息在这里

希望这可以帮助。

更新:

DockerCli.exe可以在Program Files文件夹中找到。

以我为例 /c/Program\ Files/Docker/Docker/DockerCli.exe

  • dockercli.exe 仅与适用于 Windows 的 Docker Desktop 一起安装。我在 Windows Server 2019 上运行 Docker,并执行了前面评论中的两个 ps 命令(并重新启动了盒子),而这就是安装的 Docker(按照 https://hub.docker.com/editions 提供的相同命令) /enterprise/docker-ee-server-windows),我处于 ​​Windows 容器模式。所以我正在寻求与OP相同的答案:如何通过命令行切换到linux conainer模式,因为当安装Docker时,没有像Docker Desktop那样的状态尝试。 (21认同)
  • 该exe文件对我来说仍然不存在。 (4认同)

小智 5

您必须安装 Docker Enterprise 才能从 Windows 切换到 Linux 容器。有关更多信息,请参阅https://computingforgeeks.com/how-to-run-docker-containers-on-windows-server-2019/