2015-03-29 04:05:17 +02:00
|
|
|
---
|
|
|
|
layout: "docker"
|
|
|
|
page_title: "Docker: docker_container"
|
|
|
|
sidebar_current: "docs-docker-resource-container"
|
|
|
|
description: |-
|
|
|
|
Manages the lifecycle of a Docker container.
|
|
|
|
---
|
|
|
|
|
|
|
|
# docker\_container
|
|
|
|
|
|
|
|
Manages the lifecycle of a Docker container.
|
|
|
|
|
|
|
|
## Example Usage
|
|
|
|
|
|
|
|
```
|
|
|
|
# Start a container
|
|
|
|
resource "docker_container" "ubuntu" {
|
|
|
|
name = "foo"
|
|
|
|
image = "${docker_image.ubuntu.latest}"
|
|
|
|
}
|
|
|
|
|
|
|
|
# Find the latest Ubuntu precise image.
|
|
|
|
resource "docker_image" "ubuntu" {
|
2015-06-29 04:14:00 +02:00
|
|
|
name = "ubuntu:precise"
|
2015-03-29 04:05:17 +02:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Argument Reference
|
|
|
|
|
|
|
|
The following arguments are supported:
|
|
|
|
|
|
|
|
* `name` - (Required, string) The name of the Docker container.
|
|
|
|
* `image` - (Required, string) The ID of the image to back this container.
|
|
|
|
The easiest way to get this value is to use the `docker_image` resource
|
|
|
|
as is shown in the example above.
|
|
|
|
|
|
|
|
* `command` - (Optional, list of strings) The command to use to start the
|
2015-10-01 23:43:08 +02:00
|
|
|
container. For example, to run `/usr/bin/myprogram -f baz.conf` set the
|
|
|
|
command to be `["/usr/bin/myprogram", "-f", "baz.conf"]`.
|
2015-10-26 22:24:48 +01:00
|
|
|
* `entrypoint` - (Optional, list of strings) The command to use as the
|
|
|
|
Entrypoint for the container. The Entrypoint allows you to configure a
|
|
|
|
container to run as an executable. For example, to run `/usr/bin/myprogram`
|
|
|
|
when starting a container, set the entrypoint to be
|
|
|
|
`["/usr/bin/myprogram"]`.
|
2015-03-29 04:05:17 +02:00
|
|
|
* `dns` - (Optional, set of strings) Set of DNS servers.
|
|
|
|
* `env` - (Optional, set of strings) Environmental variables to set.
|
2016-01-30 22:23:35 +01:00
|
|
|
* `labels` - (Optional, map of strings) Key/value pairs to set as labels on the
|
|
|
|
container.
|
2015-04-16 21:42:21 +02:00
|
|
|
* `links` - (Optional, set of strings) Set of links for link based
|
|
|
|
connectivity between containers that are running on the same host.
|
2015-03-29 04:05:17 +02:00
|
|
|
* `hostname` - (Optional, string) Hostname of the container.
|
|
|
|
* `domainname` - (Optional, string) Domain name of the container.
|
2015-10-27 17:08:57 +01:00
|
|
|
* `restart` - (Optional, string) The restart policy for the container. Must be
|
|
|
|
one of "no", "on-failure", "always".
|
|
|
|
* `max_retry_count` - (Optional, int) The maximum amount of times to an attempt
|
|
|
|
a restart when `restart` is set to "on-failure"
|
2015-03-29 04:05:17 +02:00
|
|
|
* `must_run` - (Optional, bool) If true, then the Docker container will be
|
|
|
|
kept running. If false, then as long as the container exists, Terraform
|
|
|
|
assumes it is successful.
|
2016-01-30 22:23:35 +01:00
|
|
|
* `ports` - (Optional, block) See [Ports](#ports) below for details.
|
|
|
|
* `host_entry` - (Optional, block) See [Extra Hosts](#extra_hosts) below for
|
|
|
|
details.
|
2015-06-04 12:57:38 +02:00
|
|
|
* `privileged` - (Optional, bool) Run container in privileged mode.
|
2015-03-29 04:05:17 +02:00
|
|
|
* `publish_all_ports` - (Optional, bool) Publish all ports of the container.
|
2016-01-30 22:23:35 +01:00
|
|
|
* `volumes` - (Optional, block) See [Volumes](#volumes) below for details.
|
2015-10-28 00:53:49 +01:00
|
|
|
* `memory` - (Optional, int) The memory limit for the container in MBs.
|
|
|
|
* `memory_swap` - (Optional, int) The total memory limit (memory + swap) for the
|
|
|
|
container in MBs.
|
|
|
|
* `cpu_shares` - (Optional, int) CPU shares (relative weight) for the container.
|
2015-11-04 18:42:55 +01:00
|
|
|
* `log_driver` - (Optional, string) The logging driver to use for the container.
|
|
|
|
Defaults to "json-file".
|
2016-01-30 22:23:35 +01:00
|
|
|
* `log_opts` - (Optional, map of strings) Key/value pairs to use as options for
|
|
|
|
the logging driver.
|
|
|
|
* `network_mode` - (Optional, string) Network mode of the container.
|
|
|
|
* `networks` - (Optional, set of strings) Id of the networks in which the
|
|
|
|
container is.
|
2015-03-29 04:05:17 +02:00
|
|
|
|
|
|
|
<a id="ports"></a>
|
2016-01-30 22:23:35 +01:00
|
|
|
### Ports
|
2015-03-29 04:05:17 +02:00
|
|
|
|
|
|
|
`ports` is a block within the configuration that can be repeated to specify
|
|
|
|
the port mappings of the container. Each `ports` block supports
|
|
|
|
the following:
|
|
|
|
|
|
|
|
* `internal` - (Required, int) Port within the container.
|
|
|
|
* `external` - (Required, int) Port exposed out of the container.
|
|
|
|
* `ip` - (Optional, string) IP address/mask that can access this port.
|
|
|
|
* `protocol` - (Optional, string) Protocol that can be used over this port,
|
|
|
|
defaults to TCP.
|
|
|
|
|
2015-10-09 15:05:43 +02:00
|
|
|
<a id="extra_hosts"></a>
|
2016-01-30 22:23:35 +01:00
|
|
|
### Extra Hosts
|
2015-10-09 15:05:43 +02:00
|
|
|
|
2016-01-15 03:59:07 +01:00
|
|
|
`host_entry` is a block within the configuration that can be repeated to specify
|
|
|
|
the extra host mappings for the container. Each `host_entry` block supports
|
2015-10-09 15:05:43 +02:00
|
|
|
the following:
|
|
|
|
|
|
|
|
* `host` - (Required, int) Hostname to add.
|
|
|
|
* `ip` - (Required, int) IP address this hostname should resolve to..
|
|
|
|
|
2016-01-15 03:59:07 +01:00
|
|
|
This is equivalent to using the `--add-host` option when using the `run`
|
|
|
|
command of the Docker CLI.
|
|
|
|
|
2015-03-29 04:05:17 +02:00
|
|
|
<a id="volumes"></a>
|
2016-01-30 22:23:35 +01:00
|
|
|
### Volumes
|
2015-03-29 04:05:17 +02:00
|
|
|
|
|
|
|
`volumes` is a block within the configuration that can be repeated to specify
|
|
|
|
the volumes attached to a container. Each `volumes` block supports
|
|
|
|
the following:
|
|
|
|
|
|
|
|
* `from_container` - (Optional, string) The container where the volume is
|
|
|
|
coming from.
|
|
|
|
* `host_path` - (Optional, string) The path on the host where the volume
|
|
|
|
is coming from.
|
2016-01-15 22:59:33 +01:00
|
|
|
* `volume_name` - (Optional, string) The name of the docker volume which
|
|
|
|
should be mounted.
|
|
|
|
* `container_path` - (Optional, string) The path in the container where the
|
|
|
|
volume will be mounted.
|
2015-10-07 22:07:41 +02:00
|
|
|
* `read_only` - (Optional, bool) If true, this volume will be readonly.
|
2015-03-29 04:05:17 +02:00
|
|
|
Defaults to false.
|
2016-01-30 22:23:35 +01:00
|
|
|
|
2016-01-15 22:59:33 +01:00
|
|
|
One of `from_container`, `host_path` or `volume_name` must be set.
|
2015-04-20 19:45:58 +02:00
|
|
|
|
|
|
|
## Attributes Reference
|
|
|
|
|
|
|
|
The following attributes are exported:
|
|
|
|
|
|
|
|
* `ip_address` - The IP address of the container as read from its
|
|
|
|
NetworkSettings.
|
|
|
|
* `ip_prefix_length` - The IP prefix length of the container as read from its
|
|
|
|
NetworkSettings.
|
|
|
|
* `gateway` - The network gateway of the container as read from its
|
|
|
|
NetworkSettings.
|
|
|
|
* `bridge` - The network bridge of the container as read from its
|
|
|
|
NetworkSettings.
|