diff --git a/client/driver/docker.go b/client/driver/docker.go index f2d25f9ba9f7..df02ff87979c 100644 --- a/client/driver/docker.go +++ b/client/driver/docker.go @@ -43,6 +43,7 @@ type DockerDriverConfig struct { Privileged bool `mapstructure:"privileged"` // Flag to run the container in priviledged mode DNS string `mapstructure:"dns_server"` // DNS Server for containers SearchDomains string `mapstructure:"search_domains"` // DNS Search domains for containers + Hostname string `mapstructure:"hostname"` // Hostname for containers } func (c *DockerDriverConfig) Validate() error { @@ -167,7 +168,8 @@ func (d *DockerDriver) createContainer(ctx *ExecContext, task *structs.Task, dri env.SetTaskLocalDir(filepath.Join("/", allocdir.TaskLocal)) config := &docker.Config{ - Image: driverConfig.ImageName, + Image: driverConfig.ImageName, + Hostname: driverConfig.Hostname, } hostConfig := &docker.HostConfig{ diff --git a/website/source/docs/drivers/docker.html.md b/website/source/docs/drivers/docker.html.md index dfa4c85a5710..623cdd6b4aee 100644 --- a/website/source/docs/drivers/docker.html.md +++ b/website/source/docs/drivers/docker.html.md @@ -42,6 +42,10 @@ The `docker` driver supports the following configuration in the job specificatio * `search-domains` - (optional) A comma separated list of DNS search domains for the container to use. + +* `hostname` - (optional) The hostname to assign to the container. When launching more + than one of a task (using `count`) with this option set, every container the task + starts will have the same hostname. **Authentication** Registry authentication can be set per task with the following authentication