package quota
import "github.com/docker/cli/components/engine/daemon/graphdriver/quota"
Index ¶
- Variables
- type Control
- func NewControl(basePath string) (*Control, error)
- func (q *Control) GetQuota(targetPath string, quota *Quota) error
- func (q *Control) SetQuota(targetPath string, quota Quota) error
- type Quota
Variables ¶
var ErrQuotaNotSupported = errQuotaNotSupported{}
ErrQuotaNotSupported indicates if were found the FS didn't have projects quotas available
Types ¶
type Control ¶
type Control struct {
// contains filtered or unexported fields
}
Control - Context to be used by storage driver (e.g. overlay) who wants to apply project quotas to container dirs
func NewControl ¶
NewControl - initialize project quota support. Test to make sure that quota can be set on a test dir and find the first project id to be used for the next container create.
Returns nil (and error) if project quota is not supported.
First get the project id of the home directory. This test will fail if the backing fs is not xfs.
xfs_quota tool can be used to assign a project id to the driver home directory, e.g.:
echo 999:/var/lib/docker/overlay2 >> /etc/projects echo docker:999 >> /etc/projid xfs_quota -x -c 'project -s docker' /<xfs mount point>
In that case, the home directory project id will be used as a "start offset" and all containers will be assigned larger project ids (e.g. >= 1000). This is a way to prevent xfs_quota management from conflicting with docker.
Then try to create a test directory with the next project id and set a quota on it. If that works, continue to scan existing containers to map allocated project ids.
func (*Control) GetQuota ¶
GetQuota - get the quota limits of a directory that was configured with SetQuota
func (*Control) SetQuota ¶
SetQuota - assign a unique project id to directory and set the quota limits for that project id
type Quota ¶
type Quota struct { Size uint64 }
Quota limit params - currently we only control blocks hard limit
Source Files ¶
- Version
- v17.12.1-ce+incompatible
- Published
- Feb 27, 2018
- Platform
- linux/amd64
- Imports
- 10 packages
- Last checked
- 33 minutes ago –
Tools for package owners.