Docker 镜像可以跨平台部属吗?

2019-03-07 17:12:32 +08:00
 maxxfire
刚看了一篇文章说 docker 类似虚拟机,但又比虚拟机快和轻量。真的吗,它可以跨平台吗。
比如我现在做一个这样的镜像:
把“扫雷.exe ”放到 docker 镜像中,那么它可以在 windows 下运行,那么它也可以在 linux 下运行吗?
8445 次点击
所在节点    Docker
9 条回复
finab
2019-03-07 17:19:00 +08:00
可以
maxxfire
2019-03-07 17:20:47 +08:00
@finab 真的吗,这也太吊了吧,docker 太神奇了,那虚拟机可以淘汰了。。
hilbertz
2019-03-07 17:21:55 +08:00
docker 虚拟的是系统资源,确切来说,容器是一种资源隔离技术,而不是像 qemu 那样的硬件层虚拟
dorentus
2019-03-07 17:27:01 +08:00
docker 依赖 Linux 特有的特性,所以原则上只支持 Linux 平台;其他平台版的 docker 在实现上是先帮你生成一个 Linux 虚拟机,然后在里面搞。

所以放到 docker 镜像中的“扫雷.exe ”,并不能使用通常的方法运行起来,不管是用 Window 版的 docker,还是用 Linux 版的 docker。
delectate
2019-03-07 18:05:21 +08:00
就是个 vbox,这么一说你懂了吧?
maxxfire
2019-03-08 10:01:35 +08:00
@dorentus 还有一个问题我想请教一下,假如都在 linux 平台下操作,因为 linux 下 docker 的是依靠其内核特性实现(并不是开虚拟机的方式)。所以问题就是 docker 在 linux 下如何解决 CPU 平台无关的(比如:在 x86 机器的 ubuntu 系统上运行 ARM 架构的 fedora 系统 docker 镜像)
lazyfighter
2019-03-08 15:44:07 +08:00
参考 java 宣传语言:compile once run anywhere,docker 宣传语言: build once run anywhere。
chrislu8468
2019-03-22 16:57:16 +08:00
4 楼说的对,每个 docker 容器都可以看成是一个小型 Linux 系统,以进程的方式运行在宿主机
应该是这么说:只要在 Linux 能运行的,满足程序运行条件,都可以在装有 Docker 的机器上运行。
比如,我写了一个 Python 程序,做成了镜像,是基于官方的 Python 镜像,那么我的这个镜像可以运行于任何安装了 Docker 的机器上,运行起来就叫容器。目标运行机器并不需要安装了 Python 运行环境,只要安装 Docker 就够了。
再比如,你之前安装 MySQL,需要下载 rpm 包安装或者二进制编译,中间可能会遇到很麻烦的包依赖问题。有了 Docker,你可以从官方下载 MySQL 镜像,然后运行起来即可,不在乎运行的机器是什么操作系统,只要能安装 Docker 就行
kingfsen
2019-03-30 10:49:25 +08:00
这样肯定不行啊。你在 Linux 打成的镜像包只能在 Linux 上运行,在 windows 上打的镜像包在 windows 上运行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/542214

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX