Gil*_*ili 9 docker windows-nano-server
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/deployment/deployment_nano谈到在 Windows 下运行 nanoserver docker 镜像:
码头工人拉微软/纳米服务器
这是否意味着我们应该能够在 Docker 运行的任何地方(例如 Linux)运行 nanoserver?
容器在共享操作系统上提供进程隔离,而不是通过虚拟机在共享硬件上提供操作系统隔离。由于操作系统是共享的,主机操作系统需要能够运行所需的二进制文件。您将在 docker 引擎的架构和要运行的镜像的架构中看到这一点,它们必须兼容:
$ docker system info --format '{{.OSType}} {{.Architecture}}'
linux x86_64
$ docker image inspect busybox --format '{{.Os}} {{.Architecture}}'
linux amd64
Run Code Online (Sandbox Code Playgroud)
如果您尝试运行与您的主机不兼容的架构,您将收到错误消息,因为内核无法识别二进制格式:
$ 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"
Run Code Online (Sandbox Code Playgroud)
Docker 的桌面版本和 Docker 的 Windows Server 版本在幕后包含一个 Linux VM 来运行 Linux 容器(Linux 容器是主要的容器环境,因此 Docker 使用 Linuxkit 来实现这一点,以简化开发人员的工作流程)。对于 Windows,引擎中有一个开关可以使用 Linux VM 或运行本机 Windows 容器。
但是,Docker 没有用于 Windows 的嵌入式 VM 来在 Linux 主机上运行其二进制文件(因为 Windows 不是开源的并且需要许可),因此运行 Windows 本机容器的唯一方法是在 Windows 主机上。
小智 5
简短而简单:不
容器与内核/操作系统虚拟化有关。
它是在共享内核的容器主机中运行的一组进程。如果该容器主机是 Linux 守护进程,则它无法共享 nanoserver 映像所需的 Windows 内核
| 归档时间: |
|
| 查看次数: |
6392 次 |
| 最近记录: |