inspect_unix.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // +build !windows
  2. package daemon
  3. import (
  4. "github.com/docker/docker/api/types"
  5. "github.com/docker/docker/api/types/versions/v1p19"
  6. )
  7. // This sets platform-specific fields
  8. func setPlatformSpecificContainerFields(container *Container, contJSONBase *types.ContainerJSONBase) *types.ContainerJSONBase {
  9. contJSONBase.AppArmorProfile = container.AppArmorProfile
  10. contJSONBase.ResolvConfPath = container.ResolvConfPath
  11. contJSONBase.HostnamePath = container.HostnamePath
  12. contJSONBase.HostsPath = container.HostsPath
  13. return contJSONBase
  14. }
  15. // ContainerInspectPre120 gets containers for pre 1.20 APIs.
  16. func (daemon *Daemon) ContainerInspectPre120(name string) (*v1p19.ContainerJSON, error) {
  17. container, err := daemon.Get(name)
  18. if err != nil {
  19. return nil, err
  20. }
  21. container.Lock()
  22. defer container.Unlock()
  23. base, err := daemon.getInspectData(container, false)
  24. if err != nil {
  25. return nil, err
  26. }
  27. volumes := make(map[string]string)
  28. volumesRW := make(map[string]bool)
  29. for _, m := range container.MountPoints {
  30. volumes[m.Destination] = m.Path()
  31. volumesRW[m.Destination] = m.RW
  32. }
  33. config := &v1p19.ContainerConfig{
  34. Config: container.Config,
  35. MacAddress: container.Config.MacAddress,
  36. NetworkDisabled: container.Config.NetworkDisabled,
  37. ExposedPorts: container.Config.ExposedPorts,
  38. VolumeDriver: container.hostConfig.VolumeDriver,
  39. Memory: container.hostConfig.Memory,
  40. MemorySwap: container.hostConfig.MemorySwap,
  41. CPUShares: container.hostConfig.CPUShares,
  42. CPUSet: container.hostConfig.CpusetCpus,
  43. }
  44. networkSettings := daemon.getBackwardsCompatibleNetworkSettings(container.NetworkSettings)
  45. return &v1p19.ContainerJSON{
  46. ContainerJSONBase: base,
  47. Volumes: volumes,
  48. VolumesRW: volumesRW,
  49. Config: config,
  50. NetworkSettings: networkSettings,
  51. }, nil
  52. }
  53. func addMountPoints(container *Container) []types.MountPoint {
  54. mountPoints := make([]types.MountPoint, 0, len(container.MountPoints))
  55. for _, m := range container.MountPoints {
  56. mountPoints = append(mountPoints, types.MountPoint{
  57. Name: m.Name,
  58. Source: m.Path(),
  59. Destination: m.Destination,
  60. Driver: m.Driver,
  61. Mode: m.Mode,
  62. RW: m.RW,
  63. })
  64. }
  65. return mountPoints
  66. }