Merge pull request #1585 from bamarni/overlay2
[docker] add overlay2 storage driver
This commit is contained in:
commit
e5edc45865
@ -84,6 +84,7 @@ const (
|
||||
devicemapperStorageDriver storageDriver = "devicemapper"
|
||||
aufsStorageDriver storageDriver = "aufs"
|
||||
overlayStorageDriver storageDriver = "overlay"
|
||||
overlay2StorageDriver storageDriver = "overlay2"
|
||||
zfsStorageDriver storageDriver = "zfs"
|
||||
)
|
||||
|
||||
|
@ -195,8 +195,8 @@ func newDockerContainerHandler(
|
||||
switch storageDriver {
|
||||
case aufsStorageDriver:
|
||||
rootfsStorageDir = path.Join(storageDir, string(aufsStorageDriver), aufsRWLayer, rwLayerID)
|
||||
case overlayStorageDriver:
|
||||
rootfsStorageDir = path.Join(storageDir, string(overlayStorageDriver), rwLayerID)
|
||||
case overlayStorageDriver, overlay2StorageDriver:
|
||||
rootfsStorageDir = path.Join(storageDir, string(storageDriver), rwLayerID)
|
||||
case zfsStorageDriver:
|
||||
status, err := Status()
|
||||
if err != nil {
|
||||
@ -411,7 +411,7 @@ func (self *dockerContainerHandler) getFsStats(stats *info.ContainerStats) error
|
||||
// Device has to be the pool name to correlate with the device name as
|
||||
// set in the machine info filesystems.
|
||||
device = self.poolName
|
||||
case aufsStorageDriver, overlayStorageDriver:
|
||||
case aufsStorageDriver, overlayStorageDriver, overlay2StorageDriver:
|
||||
deviceInfo, err := self.fsInfo.GetDirFsDevice(self.rootfsStorageDir)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to determine device info for dir: %v: %v", self.rootfsStorageDir, err)
|
||||
|
2
fs/fs.go
2
fs/fs.go
@ -266,7 +266,7 @@ func getDockerImagePaths(context Context) map[string]struct{} {
|
||||
|
||||
// TODO(rjnagal): Detect docker root and graphdriver directories from docker info.
|
||||
dockerRoot := context.Docker.Root
|
||||
for _, dir := range []string{"devicemapper", "btrfs", "aufs", "overlay", "zfs"} {
|
||||
for _, dir := range []string{"devicemapper", "btrfs", "aufs", "overlay", "overlay2", "zfs"} {
|
||||
dockerImagePaths[path.Join(dockerRoot, dir)] = struct{}{}
|
||||
}
|
||||
for dockerRoot != "/" && dockerRoot != "." {
|
||||
|
@ -418,6 +418,27 @@ func TestAddDockerImagesLabel(t *testing.T) {
|
||||
},
|
||||
expectedDockerDevice: "/dev/sda1",
|
||||
},
|
||||
{
|
||||
name: "[overlay2] root fs inside container - /var/lib/docker bindmount",
|
||||
mounts: []*mount.Info{
|
||||
{
|
||||
Source: "overlay",
|
||||
Mountpoint: "/",
|
||||
Fstype: "overlay",
|
||||
},
|
||||
{
|
||||
Source: "/dev/sdb1",
|
||||
Mountpoint: "/var/lib/docker",
|
||||
Fstype: "ext4",
|
||||
},
|
||||
{
|
||||
Source: "/dev/sdb2",
|
||||
Mountpoint: "/var/lib/docker/overlay2",
|
||||
Fstype: "ext4",
|
||||
},
|
||||
},
|
||||
expectedDockerDevice: "/dev/sdb2",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
@ -91,6 +91,7 @@ func New(t *testing.T) Framework {
|
||||
const (
|
||||
Aufs string = "aufs"
|
||||
Overlay string = "overlay"
|
||||
Overlay2 string = "overlay2"
|
||||
DeviceMapper string = "devicemapper"
|
||||
Unknown string = ""
|
||||
)
|
||||
@ -276,12 +277,8 @@ func (self dockerActions) StorageDriver() string {
|
||||
idx := strings.LastIndex(line, ": ") + 2
|
||||
driver := line[idx:]
|
||||
switch driver {
|
||||
case Aufs:
|
||||
return Aufs
|
||||
case Overlay:
|
||||
return Overlay
|
||||
case DeviceMapper:
|
||||
return DeviceMapper
|
||||
case Aufs, Overlay, Overlay2, DeviceMapper:
|
||||
return driver
|
||||
default:
|
||||
return Unknown
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ func TestDockerFilesystemStats(t *testing.T) {
|
||||
}
|
||||
needsBaseUsageCheck := false
|
||||
switch storageDriver {
|
||||
case framework.Aufs, framework.Overlay, framework.DeviceMapper:
|
||||
case framework.Aufs, framework.Overlay, framework.Overlay2, framework.DeviceMapper:
|
||||
needsBaseUsageCheck = true
|
||||
}
|
||||
pass := false
|
||||
|
Loading…
Reference in New Issue
Block a user