我知道docker容器在docker主机之间是可移植的,但我对与Base Image和主机的关系感到困惑.
从图像文档中可以看出,如果运行各种基本映像,主机上的占用空间会更大(类似于多个虚拟机).这个假设是否正确?
我确信很多这种混乱来自于我对LXC缺乏了解.

Bra*_*ncy 29
我对与基本图像和主机的关系感到困惑.
容器和主机之间的唯一关系是它们使用相同的内核.在Docker中运行的程序根本看不到主机文件系统,只能看到它们自己的文件系统.
如果您运行了各种基本映像,似乎您将在主机上拥有更大的占用空间(类似于多个VM).这个假设是否正确?
不.Ubuntu基本映像大约150MB.但是你很难真正使用所有这些程序和库.您只需要一小部分用于任何特定目的.实际上,如果你的容器正在运行memcache,你可以只复制它需要的3或4个库,它大约是1MB.不需要shell等.未使用的文件只会耐心地放在磁盘上,完全被忽略.它们不会加载到内存中,也不会在磁盘上复制.
好的:许多容器共享一个基本图像.坏:许多容器运行单独/唯一的基本映像.
没有.使用多个图像只会使用一点点RAM.(显然,多个容器会占用更多磁盘空间,但磁盘很便宜,所以我们会忽略它).所以我认为这是"好"而不是"坏".
示例:我使用Memcached启动一个Ubuntu容器,使用Tomcat启动另一个Centos容器.如果他们同时运行Ubuntu,他们可以分享内存等libc.但由于它们不共享文件,因此每个基本映像必须加载它自己的副本libc.但正如我们所见,我们只谈论150MB的文件,而你可能只使用了其中的几个百分点.所以每个图像只浪费几MB的RAM.
(提示:看看你的进程ps.这是它使用了多少RAM,包括它的图像中的任何文件.)
| 归档时间: |
|
| 查看次数: |
5852 次 |
| 最近记录: |