【问题标题】:Docker command line to switch to running linux containers on Windows Core machineDocker 命令行切换到在 Windows Core 机器上运行 linux 容器
【发布时间】:2019-11-26 14:41:43
【问题描述】:

我继承了一台 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

在我的 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

【问题讨论】:

标签: windows docker


【解决方案1】:

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

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

-SwitchLinuxEngine
-SwitchWindowsEngine

更多信息here

希望这会有所帮助。

更新:

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

就我而言,它是在这里/c/Program\ Files/Docker/Docker/DockerCli.exe

【讨论】:

  • 谢谢。我似乎在这台机器上没有 DockerCli。那是与 docker 相关的单独安装的一部分吗?
  • 更新了我的答案。
  • 那个 exe 文件对我来说仍然不存在。
  • 这里一样,找不到那个exe,安装有: 1. Install-Module -Name DockerMsftProvider -Force。 2. Install-Package -Name docker -ProviderName DockerMsftProvider -Force
  • dockercli.exe 仅与 Docker Desktop for Windows 一起安装。我在 Windows Server 2019 上运行 Docker,并在上一条评论中执行了两个 ps 命令(并重新启动了该框),虽然这就是安装 Docker(根据hub.docker.com/editions/enterprise/docker-ee-server-windows 提供的相同命令),但我被留在了 Windows 容器中模式。所以我正在寻求与 OP 相同的答案:如何通过 cmd 行切换到 linux conainer 模式,因为安装 Docker 时,没有像 Docker Desktop 那样的状态尝试。
【解决方案2】:

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

【讨论】:

  • 它很笨重,但它有效。 “在 Windows Server 2019 上运行 Linux 容器”部分显示 Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview - 这是让它工作的关键(截至今天)。
  • 还是需要安装预览版吗?
【解决方案3】:

在 powershell 中,我运行在确切的命令之下-

./DockerCli.exe -SwitchDaemon

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

  **C:\Program Files\Docker\Docker** 

【讨论】:

    猜你喜欢
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2020-07-28
    • 1970-01-01
    • 2022-10-06
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多