github.com/pmcatominey/terraform@v0.7.0-rc2.0.20160708105029-1401a52a5cc5/website/source/docs/providers/docker/r/container.html.markdown (about) 1 --- 2 layout: "docker" 3 page_title: "Docker: docker_container" 4 sidebar_current: "docs-docker-resource-container" 5 description: |- 6 Manages the lifecycle of a Docker container. 7 --- 8 9 # docker\_container 10 11 Manages the lifecycle of a Docker container. 12 13 ## Example Usage 14 15 ``` 16 # Start a container 17 resource "docker_container" "ubuntu" { 18 name = "foo" 19 image = "${docker_image.ubuntu.latest}" 20 } 21 22 # Find the latest Ubuntu precise image. 23 resource "docker_image" "ubuntu" { 24 name = "ubuntu:precise" 25 } 26 ``` 27 28 ## Argument Reference 29 30 The following arguments are supported: 31 32 * `name` - (Required, string) The name of the Docker container. 33 * `image` - (Required, string) The ID of the image to back this container. 34 The easiest way to get this value is to use the `docker_image` resource 35 as is shown in the example above. 36 37 * `command` - (Optional, list of strings) The command to use to start the 38 container. For example, to run `/usr/bin/myprogram -f baz.conf` set the 39 command to be `["/usr/bin/myprogram", "-f", "baz.conf"]`. 40 * `entrypoint` - (Optional, list of strings) The command to use as the 41 Entrypoint for the container. The Entrypoint allows you to configure a 42 container to run as an executable. For example, to run `/usr/bin/myprogram` 43 when starting a container, set the entrypoint to be 44 `["/usr/bin/myprogram"]`. 45 * `user` - (Optional, string) User used for run the first process. Format is 46 `user` or `user:group` which user and group can be passed literraly or 47 by name. 48 * `dns` - (Optional, set of strings) Set of DNS servers. 49 * `dns_opts` - (Optional, set of strings) Set of DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. 50 * `dns_search` - (Optional, set of strings) Set of DNS search domains that are used when bare unqualified hostnames are used inside of the container. 51 * `env` - (Optional, set of strings) Environmental variables to set. 52 * `labels` - (Optional, map of strings) Key/value pairs to set as labels on the 53 container. 54 * `links` - (Optional, set of strings) Set of links for link based 55 connectivity between containers that are running on the same host. 56 * `hostname` - (Optional, string) Hostname of the container. 57 * `domainname` - (Optional, string) Domain name of the container. 58 * `restart` - (Optional, string) The restart policy for the container. Must be 59 one of "no", "on-failure", "always", "unless-stopped". 60 * `max_retry_count` - (Optional, int) The maximum amount of times to an attempt 61 a restart when `restart` is set to "on-failure" 62 * `must_run` - (Optional, bool) If true, then the Docker container will be 63 kept running. If false, then as long as the container exists, Terraform 64 assumes it is successful. 65 * `ports` - (Optional, block) See [Ports](#ports) below for details. 66 * `host_entry` - (Optional, block) See [Extra Hosts](#extra_hosts) below for 67 details. 68 * `privileged` - (Optional, bool) Run container in privileged mode. 69 * `publish_all_ports` - (Optional, bool) Publish all ports of the container. 70 * `volumes` - (Optional, block) See [Volumes](#volumes) below for details. 71 * `memory` - (Optional, int) The memory limit for the container in MBs. 72 * `memory_swap` - (Optional, int) The total memory limit (memory + swap) for the 73 container in MBs. This setting may compute to `-1` after `terraform apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. 74 * `cpu_shares` - (Optional, int) CPU shares (relative weight) for the container. 75 * `log_driver` - (Optional, string) The logging driver to use for the container. 76 Defaults to "json-file". 77 * `log_opts` - (Optional, map of strings) Key/value pairs to use as options for 78 the logging driver. 79 * `network_mode` - (Optional, string) Network mode of the container. 80 * `networks` - (Optional, set of strings) Id of the networks in which the 81 container is. 82 83 <a id="ports"></a> 84 ### Ports 85 86 `ports` is a block within the configuration that can be repeated to specify 87 the port mappings of the container. Each `ports` block supports 88 the following: 89 90 * `internal` - (Required, int) Port within the container. 91 * `external` - (Required, int) Port exposed out of the container. 92 * `ip` - (Optional, string) IP address/mask that can access this port. 93 * `protocol` - (Optional, string) Protocol that can be used over this port, 94 defaults to TCP. 95 96 <a id="extra_hosts"></a> 97 ### Extra Hosts 98 99 `host_entry` is a block within the configuration that can be repeated to specify 100 the extra host mappings for the container. Each `host_entry` block supports 101 the following: 102 103 * `host` - (Required, int) Hostname to add. 104 * `ip` - (Required, int) IP address this hostname should resolve to.. 105 106 This is equivalent to using the `--add-host` option when using the `run` 107 command of the Docker CLI. 108 109 <a id="volumes"></a> 110 ### Volumes 111 112 `volumes` is a block within the configuration that can be repeated to specify 113 the volumes attached to a container. Each `volumes` block supports 114 the following: 115 116 * `from_container` - (Optional, string) The container where the volume is 117 coming from. 118 * `host_path` - (Optional, string) The path on the host where the volume 119 is coming from. 120 * `volume_name` - (Optional, string) The name of the docker volume which 121 should be mounted. 122 * `container_path` - (Optional, string) The path in the container where the 123 volume will be mounted. 124 * `read_only` - (Optional, bool) If true, this volume will be readonly. 125 Defaults to false. 126 127 One of `from_container`, `host_path` or `volume_name` must be set. 128 129 ## Attributes Reference 130 131 The following attributes are exported: 132 133 * `ip_address` - The IP address of the container as read from its 134 NetworkSettings. 135 * `ip_prefix_length` - The IP prefix length of the container as read from its 136 NetworkSettings. 137 * `gateway` - The network gateway of the container as read from its 138 NetworkSettings. 139 * `bridge` - The network bridge of the container as read from its 140 NetworkSettings.