我拉到一個標準的碼頭工人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