12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package daemon // import "github.com/docker/docker/daemon"
- import (
- "time"
- "github.com/docker/docker/api/types/container"
- libcontainerdtypes "github.com/docker/docker/libcontainerd/types"
- specs "github.com/opencontainers/runtime-spec/specs-go"
- )
- func toContainerdResources(resources container.Resources) *libcontainerdtypes.Resources {
- var r libcontainerdtypes.Resources
- r.BlockIO = &specs.LinuxBlockIO{
- Weight: &resources.BlkioWeight,
- }
- shares := uint64(resources.CPUShares)
- r.CPU = &specs.LinuxCPU{
- Shares: &shares,
- Cpus: resources.CpusetCpus,
- Mems: resources.CpusetMems,
- }
- var (
- period uint64
- quota int64
- )
- if resources.NanoCPUs != 0 {
- period = uint64(100 * time.Millisecond / time.Microsecond)
- quota = resources.NanoCPUs * int64(period) / 1e9
- }
- if quota == 0 && resources.CPUQuota != 0 {
- quota = resources.CPUQuota
- }
- if period == 0 && resources.CPUPeriod != 0 {
- period = uint64(resources.CPUPeriod)
- }
- r.CPU.Period = &period
- r.CPU.Quota = "a
- r.Memory = &specs.LinuxMemory{
- Limit: &resources.Memory,
- Reservation: &resources.MemoryReservation,
- Kernel: &resources.KernelMemory,
- }
- if resources.MemorySwap > 0 {
- r.Memory.Swap = &resources.MemorySwap
- }
- r.Pids = getPidsLimit(resources)
- return &r
- }
|