【问题标题】:Linux container on server 2019 machine服务器 2019 机器上的 Linux 容器
【发布时间】:2021-02-05 07:51:30
【问题描述】:

我在我的 red hat Linux 上创建了一个 docker 镜像。 基础镜像是一个 centos 镜像,上面安装了一个应用程序。我可以在多台 Linux 机器上的 docker 上运行映像。

然后我保存了图像,然后将图像复制到安装了所有最新更新的 windows server 2019 机器上。

然后我使用

加载图像
docker load -i img.tar 

当我尝试运行容器时,出现以下错误

PS C:\Users\manish\Desktop\docker> docker run -dit  --name manish22ct   docker_22_oct:1.0
99d061211a5cc682408a2556946266e0df2596f3a4d233a557d99e28cd24371e
C:\Program Files\Docker\docker.exe: 
Error response from daemon: container 99d061211a5cc682408a2556946266e0df2596f3a4d233a557d99e28cd24371e encountered an error during CreateContainer:
failure in a Windows system call: The virtual machine or container JSON document is invalid. (0xc037010d)



extra info: {"SystemType":"container","Name":"99d061211a5cc682408a2556946266e0df2596f3a4d233a557d99e28cd24371e","Owner":"docker","LayerFolderPath":"C:\\ProgramData\\docker\\lcow\\99d061211a5cc682408a2556946266e0df2596f3a4d233a557d99e28cd24371e","Layers":[{"ID":"cf1935b5-650d-57cc-81f0-469ceb110edf","Path":"C:\\ProgramData\\docker\\lcow\\04f407aadd6912e3bc76dcd858a2754acbf5a378ccef8a11ec1079c070900a4e\\layer.vhd"},{"ID":"fe9ae0e9-ed92-51ea-b423-098275f00ed8",

【问题讨论】:

  • 您好,您解决了这个问题吗?如果是,请您发布答案吗?

标签: docker windows-server-2019


【解决方案1】:

尽我所能回答我自己的问题,以防它对某人有所帮助。

我发现 Linux 和 windows 的 docker daemon 是不同的。对于 Linux 它由 dockerhub 提供,但 Windows 由 Microsoft 提供。我从 dockerhub 下载的一些图像(例如 Cassandra)也不能直接在 Windows 上运行,但在 Linux 上运行良好。

有时这些图像也会运行。

如果您的图像未在两者上运行,则图像层中的某些东西会阻碍您在 Windows 上的运行。

对于 Windows,我发现 RUN 命令是你应该避免的。 检查您的 dockerfile 并删除所有 RUN 命令并将所有这些命令移入 shell 文件,例如 runMe.sh。在这个 shell 文件中所有命令的末尾不要忘记包含 tail -f /dev/null

由于 dockerfile 中只允许使用一个 CMD CMD ( /runMe.sh > /runMe.log 2>&1 ) 是您的 dockerfile 中唯一剩下的 RUN 和 CMD 指令集。

创建您的图像。它可以在 Windows 和 Linux 上运行。

【讨论】:

    猜你喜欢
    • 2020-02-05
    • 1970-01-01
    • 2021-08-07
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2011-12-02
    相关资源
    最近更新 更多