我拉到一个标准的码头工人Ubuntu的镜像并运行它像这样:搬运工Ubuntu的容器文件系统
docker run -i -t ubuntu bash -l
当我做容器内的LS我看到一个适当的文件系统,我可以创建文件等,这是怎么回事不同于VM?此外,我可以在这个容器文件系统上创建多大的文件的限制是什么?还有一种方法,我可以在容器文件系统内创建一个文件,该文件在容器停止或被杀后保留在主机文件系统中?
我拉到一个标准的码头工人Ubuntu的镜像并运行它像这样:搬运工Ubuntu的容器文件系统
docker run -i -t ubuntu bash -l
当我做容器内的LS我看到一个适当的文件系统,我可以创建文件等,这是怎么回事不同于VM?此外,我可以在这个容器文件系统上创建多大的文件的限制是什么?还有一种方法,我可以在容器文件系统内创建一个文件,该文件在容器停止或被杀后保留在主机文件系统中?
这与VM有什么不同?
虚拟机会锁定和分配整个堆栈的资源(磁盘,CPU,内存),即使它没有任何操作。
容器将资源从主机(磁盘,CPU,内存)中分离出来,但实际上不会使用它们,除非它执行某些操作。你可以启动很多容器,如果他们什么都不做,他们不会使用内存,CPU或磁盘。
关于磁盘,这些容器(从相同映像启动)共享相同的文件系统,并通过机制和UnionFS将在您写入容器时添加一个图层。
当容器退出并被移除时,该层将会丢失。
要坚持写在一个容器中的数据,请参见“Manage data in a container”
欲了解更多,请阅读Jessie Frazelle的见地的文章“Setting the Record Straight: containers vs. Zones vs. Jails vs. VMs”
看看这个问题https://stackoverflow.com/questions/16047306/how-is-docker与Docker如何工作的普通虚拟机不同。要与主机共享文件,您可以使用具有'-v host_path:container_path'的卷 – Julian