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

时间:2018-11-05 02:13:17

标签: docker

我刚开始使用docker。据我了解,docker容器在主机上运行一个离散进程,并且也与该进程共享主机的系统资源,并且据我们所知,为Linux构建的代码可能无法在MacOS上运行,反之亦然。我的问题是:是否可以将基于OS平台构建的Docker映像部署到另一个OS,例如从MacOS到Linux或从Ubuntu到CentOS?

如果问题是“否”,那么为什么它在docker存储库上只有一个正式的mysql映像,而对于Mac,Ubuntu和RHEL却没有多个?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

以MySQL 8 Dockerfile为例:

https://github.com/docker-library/mysql/blob/223f0be1213bbd8647b841243a3114e8b34022f4/8.0/Dockerfile

FROM debian:stretch-slim

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

答案 2 :(得分:0)

实际上,从任何基于Linux的映像构建的docker可以在具有相同OS内核的任何Linux发行版上运行(不带VM作为附加层)。 这意味着从例如然后,可以在Fedora / Ubuntu / Debian / etc等上运行SuSE映像,而不受任何限制。