我刚开始和多克打交道。据我所知,docker container在主机上运行一个离散的进程,并对该进程共享主机的系统资源,我们知道,为Linux构建的代码可能无法在MacOS上运行,反之亦然。我的问题是:在操作系统平台上构建的docker镜像可以部署到另一个操作系统上吗,比如从MacOS到Linux,或者从Ubuntu到CentOS?
如果问题是否定的,为什么它在docker仓库上只有一个官方mysql镜像,而没有像Mac、Ubuntu和RHEL那样的多个镜像?
发布于 2018-11-05 11:46:47
Docker on mac的工作原理是创建一个linux虚拟机。因此,在Mac上构建的docker镜像实际上是在linux虚拟机上构建的,并且可以与大多数其他docker系统自由交换-包括windows上的大多数docker。有一个windows版本的dockers不是基于linux的。这些图像是不可互换的。
发布于 2020-04-14 14:36:29
事实上,从任何基于linux的映像构建的docker可以在具有相同操作系统内核的任何linux发行版上运行(不带VM作为附加层)。这意味着从例如SuSE镜像构建的docker可以在Fedora/Ubuntu/Debian/等上运行。没有任何限制。
发布于 2018-11-05 10:17:21
Docker镜像与平台无关。Dockerfile声明的第一件事是它从哪个基础镜像中拉出,这应该决定容器将在哪个操作系统下运行。
以MySQL 8 Dockerfile文件为例:
https://github.com/docker-library/mysql/blob/223f0be1213bbd8647b841243a3114e8b34022f4/8.0/Dockerfile
FROM debian:stretch-slim这意味着如果主机是MacOS,那么镜像以及由此启动的任何容器都将基于Debian Linux...even。
https://stackoverflow.com/questions/53147454
复制相似问题