window 下的 docker 能移植到 linux吗,Windows nanooserver可以在Linux docker中运行吗?

容器在共享操作系统上提供进程隔离,而不是在VM上共享硬件上的操作系统隔离.由于OS是共享的,因此主机OS需要能够运行所需的二进制文件.您将在docker引擎的体系结构和要运行的映像的体系结构中看到这一点,它们必须兼容:

$docker system info --format '{{.OSType}} {{.Architecture}}'

linux x86_64

$docker image inspect busybox --format '{{.Os}} {{.Architecture}}'

linux amd64

如果您尝试运行与主机不兼容的体系结构,则会出现错误,因为内核无法识别二进制格式:

$docker image pull --platform arm64 busybox:latest

latest: Pulling from library/busybox

acafde7ce2e7: Pull complete

Digest: sha256:2a03a6059f21e150ae84b0973863609494aad70f0a80eaeb64bddd8d92465812

Status: Downloaded newer image for busybox:latest

$docker run -it --rm busybox:latest echo hello

standard_init_linux.go:190: exec user process caused "no such file or directory"

Docker的桌面版本和Docker的Windows Server版本包括一个运行Linux容器的Linux VM(Linux容器是主要的容器环境,所以Docker使用Linuxkit实现这一点,以简化开发人员的工作流程).对于Windows,引擎中有一个开关用于使用Linux VM或运行本机Windows容器.

但是,Docker没有用于Windows的嵌入式VM在Linux主机上运行其二进制文件(因为Windows不是开源的并且需要许可),因此运行Windows本机容器的唯一方法是在Windows主机上.

你可能感兴趣的:(window,下的,docker,能移植到,linux吗)