diff --git a/pkg/cri/opts/container.go b/pkg/cri/opts/container.go index b3e358b2e..393e6a08b 100644 --- a/pkg/cri/opts/container.go +++ b/pkg/cri/opts/container.go @@ -69,6 +69,12 @@ func WithVolumes(volumeMounts map[string]string) containerd.NewContainerOpts { if err != nil { return err } + // Since only read is needed, append ReadOnly mount option to prevent linux kernel + // from syncing whole filesystem in umount syscall. + if len(mounts) == 1 && mounts[0].Type == "overlay" { + mounts[0].Options = append(mounts[0].Options, "ro") + } + root, err := os.MkdirTemp("", "ctd-volume") if err != nil { return err