diff --git a/probe/docker/container.go b/probe/docker/container.go index da27ac6d44..6622fe0c47 100644 --- a/probe/docker/container.go +++ b/probe/docker/container.go @@ -108,6 +108,12 @@ func (c *container) PID() int { func (c *container) Hostname() string { if c.container.Config.Domainname == "" { + // If hostname isn't set on a container Docker sets it to the + // first 12 characters of the container ID, a random hex + // number which we don't want to show in the UI. + if strings.HasPrefix(c.container.ID, c.container.Config.Hostname) { + return "" + } return c.container.Config.Hostname } @@ -375,13 +381,16 @@ func (c *container) getSanitizedCommand() string { } func (c *container) getBaseNode() report.Node { - result := report.MakeNodeWith(report.MakeContainerNodeID(c.ID()), map[string]string{ - ContainerID: c.ID(), - ContainerCreated: c.container.Created.Format(time.RFC3339Nano), - ContainerCommand: c.getSanitizedCommand(), - ImageID: c.Image(), - ContainerHostname: c.Hostname(), - }).WithParent(report.ContainerImage, report.MakeContainerImageNodeID(c.Image())) + properties := map[string]string{ + ContainerID: c.ID(), + ContainerCreated: c.container.Created.Format(time.RFC3339Nano), + ContainerCommand: c.getSanitizedCommand(), + ImageID: c.Image(), + } + if hostname := c.Hostname(); hostname != "" { + properties[ContainerHostname] = hostname + } + result := report.MakeNodeWith(report.MakeContainerNodeID(c.ID()), properties).WithParent(report.ContainerImage, report.MakeContainerImageNodeID(c.Image())) result = result.AddPrefixPropertyList(LabelPrefix, c.container.Config.Labels) if !c.noEnvironmentVariables { result = result.AddPrefixPropertyList(EnvPrefix, c.env())