inspect_linux.go 2.2 KB

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