Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MacOS上构建的docker映像是否可以部署到其他操作系统(如Linux)?_Docker - Fatal编程技术网

在MacOS上构建的docker映像是否可以部署到其他操作系统(如Linux)?

在MacOS上构建的docker映像是否可以部署到其他操作系统(如Linux)?,docker,Docker,我刚开始学docker。据我所知,docker容器在主机上运行一个离散进程,并与该进程共享主机的系统资源,正如我们所知,为Linux构建的代码可能无法在MacOS上运行,反之亦然。我的问题是:在操作系统平台上构建的docker镜像是否可以部署到其他操作系统,比如MacOS到Linux,或者Ubuntu到CentOS 如果问题是否定的,为什么它在docker存储库中只有一个官方mysql映像,而不像Mac、Ubuntu和RHEL那样有多个 Docker映像与平台无关。Dockerfile声明的第一

我刚开始学docker。据我所知,docker容器在主机上运行一个离散进程,并与该进程共享主机的系统资源,正如我们所知,为Linux构建的代码可能无法在MacOS上运行,反之亦然。我的问题是:在操作系统平台上构建的docker镜像是否可以部署到其他操作系统,比如MacOS到Linux,或者Ubuntu到CentOS


如果问题是否定的,为什么它在docker存储库中只有一个官方mysql映像,而不像Mac、Ubuntu和RHEL那样有多个

Docker映像与平台无关。Dockerfile声明的第一件事是它从哪个基本映像中提取,这应该决定容器将在哪个操作系统下运行

以MySQL 8 Dockerfile为例:


这意味着映像以及由此启动的任何容器都将基于Debian Linux…即使主机是MacOS。

mac上的Docker通过创建Linux虚拟机来工作。因此,在Mac上构建的docker映像实际上是在linux虚拟机上构建的,可以与大多数其他docker系统自由交换,包括windows上的大多数docker系统。
有一个windows版本的dockers不是基于linux的。这些映像是不可互换的。

事实上,从任何基于linux的映像构建的docker都可以在具有相同操作系统内核的任何linux发行版上运行(没有VM作为附加层)。
这意味着由SuSE图像构建的docker可以在Fedora/Ubuntu/Debian等平台上运行。。。没有任何限制。

我认为你在技术上是错的。有linux docker和windows docker。(可以通过虚拟机在windows或mac上运行linux docker,这实际上是在windows上运行docker最常用的方式。)但是,windows docker映像不会在linux docker上运行,反之亦然。
FROM debian:stretch-slim