Why does Docker need a Union File System

前端 未结 1 1066
陌清茗
陌清茗 2020-12-08 02:53

What exactly does Docker do with Union File system (like AUFS) to create the containers ? If Docker had to use a regular file system instead of a union file system what will

相关标签:
1条回答
  • 2020-12-08 03:12

    It is used to:

    • avoid duplicating a complete set of files each time you run an image as a new container
    • isolate changes to a container filesystem in its own layer, allowing for that same container to be restarted from a known content (since the layer with the changes will have been dismissed when the container is removed)

    That UnionFS:

    implements a union mount for other file systems. It allows files and directories of separate file systems, known as branches, to be transparently overlaid, forming a single coherent file system.
    Contents of directories which have the same path within the merged branches will be seen together in a single merged directory, within the new, virtual filesystem.

    This allows a file system to appear as writable, but without actually allowing writes to change the file system, also known as copy-on-write

    If you didn't have UnionFS, an 200MB image run 5 times as 5 separates containers would mean 1GB of disk space.

    See more at "How does a Docker image work?".
    For more technical details, see:

    • "Docker storage drivers"
    • "Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic" from Jérôme Petazzoni (jpetazzo).
    0 讨论(0)
提交回复
热议问题