ContainerArgs

data class ContainerArgs(val attach: Output<Boolean>? = null, val capabilities: Output<ContainerCapabilitiesArgs>? = null, val cgroupnsMode: Output<String>? = null, val command: Output<List<String>>? = null, val containerReadRefreshTimeoutMilliseconds: Output<Int>? = null, val cpuSet: Output<String>? = null, val cpuShares: Output<Int>? = null, val cpus: Output<String>? = null, val destroyGraceSeconds: Output<Int>? = null, val devices: Output<List<ContainerDeviceArgs>>? = null, val dns: Output<List<String>>? = null, val dnsOpts: Output<List<String>>? = null, val dnsSearches: Output<List<String>>? = null, val domainname: Output<String>? = null, val entrypoints: Output<List<String>>? = null, val envs: Output<List<String>>? = null, val gpus: Output<String>? = null, val groupAdds: Output<List<String>>? = null, val healthcheck: Output<ContainerHealthcheckArgs>? = null, val hostname: Output<String>? = null, val hosts: Output<List<ContainerHostArgs>>? = null, val image: Output<String>? = null, val init: Output<Boolean>? = null, val ipcMode: Output<String>? = null, val labels: Output<List<ContainerLabelArgs>>? = null, val logDriver: Output<String>? = null, val logOpts: Output<Map<String, String>>? = null, val logs: Output<Boolean>? = null, val maxRetryCount: Output<Int>? = null, val memory: Output<Int>? = null, val memorySwap: Output<Int>? = null, val mounts: Output<List<ContainerMountArgs>>? = null, val mustRun: Output<Boolean>? = null, val name: Output<String>? = null, val networkMode: Output<String>? = null, val networksAdvanced: Output<List<ContainerNetworksAdvancedArgs>>? = null, val pidMode: Output<String>? = null, val ports: Output<List<ContainerPortArgs>>? = null, val privileged: Output<Boolean>? = null, val publishAllPorts: Output<Boolean>? = null, val readOnly: Output<Boolean>? = null, val removeVolumes: Output<Boolean>? = null, val restart: Output<String>? = null, val rm: Output<Boolean>? = null, val runtime: Output<String>? = null, val securityOpts: Output<List<String>>? = null, val shmSize: Output<Int>? = null, val start: Output<Boolean>? = null, val stdinOpen: Output<Boolean>? = null, val stopSignal: Output<String>? = null, val stopTimeout: Output<Int>? = null, val storageOpts: Output<Map<String, String>>? = null, val sysctls: Output<Map<String, String>>? = null, val tmpfs: Output<Map<String, String>>? = null, val tty: Output<Boolean>? = null, val ulimits: Output<List<ContainerUlimitArgs>>? = null, val uploads: Output<List<ContainerUploadArgs>>? = null, val user: Output<String>? = null, val usernsMode: Output<String>? = null, val volumes: Output<List<ContainerVolumeArgs>>? = null, val wait: Output<Boolean>? = null, val waitTimeout: Output<Int>? = null, val workingDir: Output<String>? = null) : ConvertibleToJava<ContainerArgs>

Manages the lifecycle of a Docker container.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as docker from "@pulumi/docker";
// Find the latest Ubuntu precise image.
const ubuntuRemoteImage = new docker.RemoteImage("ubuntu", {name: "ubuntu:precise"});
// Start a container
const ubuntu = new docker.Container("ubuntu", {
name: "foo",
image: ubuntuRemoteImage.imageId,
});
import pulumi
import pulumi_docker as docker
# Find the latest Ubuntu precise image.
ubuntu_remote_image = docker.RemoteImage("ubuntu", name="ubuntu:precise")
# Start a container
ubuntu = docker.Container("ubuntu",
name="foo",
image=ubuntu_remote_image.image_id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Docker = Pulumi.Docker;
return await Deployment.RunAsync(() =>
{
// Find the latest Ubuntu precise image.
var ubuntuRemoteImage = new Docker.RemoteImage("ubuntu", new()
{
Name = "ubuntu:precise",
});
// Start a container
var ubuntu = new Docker.Container("ubuntu", new()
{
Name = "foo",
Image = ubuntuRemoteImage.ImageId,
});
});
package main
import (
"github.com/pulumi/pulumi-docker/sdk/v4/go/docker"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Find the latest Ubuntu precise image.
ubuntuRemoteImage, err := docker.NewRemoteImage(ctx, "ubuntu", &docker.RemoteImageArgs{
Name: pulumi.String("ubuntu:precise"),
})
if err != nil {
return err
}
// Start a container
_, err = docker.NewContainer(ctx, "ubuntu", &docker.ContainerArgs{
Name: pulumi.String("foo"),
Image: ubuntuRemoteImage.ImageId,
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.docker.RemoteImage;
import com.pulumi.docker.RemoteImageArgs;
import com.pulumi.docker.Container;
import com.pulumi.docker.ContainerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Find the latest Ubuntu precise image.
var ubuntuRemoteImage = new RemoteImage("ubuntuRemoteImage", RemoteImageArgs.builder()
.name("ubuntu:precise")
.build());
// Start a container
var ubuntu = new Container("ubuntu", ContainerArgs.builder()
.name("foo")
.image(ubuntuRemoteImage.imageId())
.build());
}
}
resources:
# Start a container
ubuntu:
type: docker:Container
properties:
name: foo
image: ${ubuntuRemoteImage.imageId}
# Find the latest Ubuntu precise image.
ubuntuRemoteImage:
type: docker:RemoteImage
name: ubuntu
properties:
name: ubuntu:precise

Import

Example

Assuming you created a container as follows #!/bin/bash docker run --name foo -p8080:80 -d nginx prints the container ID 9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd you provide the definition for the resource as follows terraform resource "docker_container" "foo" { name = "foo" image = "nginx" ports { internal = "80" external = "8080" } } then the import command is as follows #!/bin/bash

$ pulumi import docker:index/container:Container foo 9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd

Constructors

Link copied to clipboard
constructor(attach: Output<Boolean>? = null, capabilities: Output<ContainerCapabilitiesArgs>? = null, cgroupnsMode: Output<String>? = null, command: Output<List<String>>? = null, containerReadRefreshTimeoutMilliseconds: Output<Int>? = null, cpuSet: Output<String>? = null, cpuShares: Output<Int>? = null, cpus: Output<String>? = null, destroyGraceSeconds: Output<Int>? = null, devices: Output<List<ContainerDeviceArgs>>? = null, dns: Output<List<String>>? = null, dnsOpts: Output<List<String>>? = null, dnsSearches: Output<List<String>>? = null, domainname: Output<String>? = null, entrypoints: Output<List<String>>? = null, envs: Output<List<String>>? = null, gpus: Output<String>? = null, groupAdds: Output<List<String>>? = null, healthcheck: Output<ContainerHealthcheckArgs>? = null, hostname: Output<String>? = null, hosts: Output<List<ContainerHostArgs>>? = null, image: Output<String>? = null, init: Output<Boolean>? = null, ipcMode: Output<String>? = null, labels: Output<List<ContainerLabelArgs>>? = null, logDriver: Output<String>? = null, logOpts: Output<Map<String, String>>? = null, logs: Output<Boolean>? = null, maxRetryCount: Output<Int>? = null, memory: Output<Int>? = null, memorySwap: Output<Int>? = null, mounts: Output<List<ContainerMountArgs>>? = null, mustRun: Output<Boolean>? = null, name: Output<String>? = null, networkMode: Output<String>? = null, networksAdvanced: Output<List<ContainerNetworksAdvancedArgs>>? = null, pidMode: Output<String>? = null, ports: Output<List<ContainerPortArgs>>? = null, privileged: Output<Boolean>? = null, publishAllPorts: Output<Boolean>? = null, readOnly: Output<Boolean>? = null, removeVolumes: Output<Boolean>? = null, restart: Output<String>? = null, rm: Output<Boolean>? = null, runtime: Output<String>? = null, securityOpts: Output<List<String>>? = null, shmSize: Output<Int>? = null, start: Output<Boolean>? = null, stdinOpen: Output<Boolean>? = null, stopSignal: Output<String>? = null, stopTimeout: Output<Int>? = null, storageOpts: Output<Map<String, String>>? = null, sysctls: Output<Map<String, String>>? = null, tmpfs: Output<Map<String, String>>? = null, tty: Output<Boolean>? = null, ulimits: Output<List<ContainerUlimitArgs>>? = null, uploads: Output<List<ContainerUploadArgs>>? = null, user: Output<String>? = null, usernsMode: Output<String>? = null, volumes: Output<List<ContainerVolumeArgs>>? = null, wait: Output<Boolean>? = null, waitTimeout: Output<Int>? = null, workingDir: Output<String>? = null)

Properties

Link copied to clipboard
val attach: Output<Boolean>? = null

If true attach to the container after its creation and waits the end of its execution. Defaults to false.

Link copied to clipboard

Add or drop certrain linux capabilities.

Link copied to clipboard
val cgroupnsMode: Output<String>? = null

Cgroup namespace mode to use for the container. Possible values are: private, host.

Link copied to clipboard
val command: Output<List<String>>? = null

The command to use to start the container. For example, to run /usr/bin/myprogram -f baz.conf set the command to be ["/usr/bin/myprogram","-f","baz&#46;conf"].

Link copied to clipboard

The total number of milliseconds to wait for the container to reach status 'running'

Link copied to clipboard
val cpus: Output<String>? = null

Specify how much of the available CPU resources a container can use. e.g a value of 1.5 means the container is guaranteed at most one and a half of the CPUs

Link copied to clipboard
val cpuSet: Output<String>? = null

A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. 0-1.

Link copied to clipboard
val cpuShares: Output<Int>? = null

CPU shares (relative weight) for the container.

Link copied to clipboard
val destroyGraceSeconds: Output<Int>? = null

If defined will attempt to stop the container before destroying. Container will be destroyed after n seconds or on successful stop.

Link copied to clipboard
val devices: Output<List<ContainerDeviceArgs>>? = null

Bind devices to the container.

Link copied to clipboard
val dns: Output<List<String>>? = null

DNS servers to use.

Link copied to clipboard
val dnsOpts: Output<List<String>>? = null

DNS options used by the DNS provider(s), see resolv.conf documentation for valid list of options.

Link copied to clipboard
val dnsSearches: Output<List<String>>? = null

DNS search domains that are used when bare unqualified hostnames are used inside of the container.

Link copied to clipboard
val domainname: Output<String>? = null

Domain name of the container.

Link copied to clipboard
val entrypoints: Output<List<String>>? = null

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"].

Link copied to clipboard
val envs: Output<List<String>>? = null

Environment variables to set in the form of KEY=VALUE, e.g. DEBUG=0

Link copied to clipboard
val gpus: Output<String>? = null

GPU devices to add to the container. Currently, only the value all is supported. Passing any other value will result in unexpected behavior.

Link copied to clipboard
val groupAdds: Output<List<String>>? = null

Additional groups for the container user

Link copied to clipboard

A test to perform to check that the container is healthy

Link copied to clipboard
val hostname: Output<String>? = null

Hostname of the container.

Link copied to clipboard
val hosts: Output<List<ContainerHostArgs>>? = null

Additional hosts to add to the container.

Link copied to clipboard
val image: Output<String>? = null

The ID of the image to back this container. The easiest way to get this value is to use the image_id attribute of the docker.RemoteImage resource as is shown in the example.

Link copied to clipboard
val init: Output<Boolean>? = null

Configured whether an init process should be injected for this container. If unset this will default to the dockerd defaults.

Link copied to clipboard
val ipcMode: Output<String>? = null

IPC sharing mode for the container. Possible values are: none, private, shareable, container:<name|id> or host.

Link copied to clipboard
val labels: Output<List<ContainerLabelArgs>>? = null

User-defined key/value metadata

Link copied to clipboard
val logDriver: Output<String>? = null

The logging driver to use for the container.

Link copied to clipboard
val logOpts: Output<Map<String, String>>? = null

Key/value pairs to use as options for the logging driver.

Link copied to clipboard
val logs: Output<Boolean>? = null

Save the container logs (attach must be enabled). Defaults to false.

Link copied to clipboard
val maxRetryCount: Output<Int>? = null

The maximum amount of times to an attempt a restart when restart is set to 'on-failure'.

Link copied to clipboard
val memory: Output<Int>? = null

The memory limit for the container in MBs.

Link copied to clipboard
val memorySwap: Output<Int>? = null

The total memory limit (memory + swap) for the container in MBs. This setting may compute to -1 after pulumi up if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.

Link copied to clipboard
val mounts: Output<List<ContainerMountArgs>>? = null

Specification for mounts to be added to containers created as part of the service.

Link copied to clipboard
val mustRun: Output<Boolean>? = null
Link copied to clipboard
val name: Output<String>? = null

The name of the container.

Link copied to clipboard
val networkMode: Output<String>? = null

Network mode of the container. See https://docs.docker.com/engine/network/ for more information.

Link copied to clipboard

The networks the container is attached to

Link copied to clipboard
val pidMode: Output<String>? = null

he PID (Process) Namespace mode for the container. Either container:<name|id> or host.

Link copied to clipboard
val ports: Output<List<ContainerPortArgs>>? = null

Publish a container's port(s) to the host.

Link copied to clipboard
val privileged: Output<Boolean>? = null

If true, the container runs in privileged mode.

Link copied to clipboard
val publishAllPorts: Output<Boolean>? = null

Publish all ports of the container.

Link copied to clipboard
val readOnly: Output<Boolean>? = null

If true, the container will be started as readonly. Defaults to false.

Link copied to clipboard
val removeVolumes: Output<Boolean>? = null

If true, it will remove anonymous volumes associated with the container. Defaults to true.

Link copied to clipboard
val restart: Output<String>? = null

The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to no.

Link copied to clipboard
val rm: Output<Boolean>? = null

If true, then the container will be automatically removed when it exits. Defaults to false.

Link copied to clipboard
val runtime: Output<String>? = null

Runtime to use for the container.

Link copied to clipboard
val securityOpts: Output<List<String>>? = null

List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration.

Link copied to clipboard
val shmSize: Output<Int>? = null

Size of /dev/shm in MBs.

Link copied to clipboard
val start: Output<Boolean>? = null

If true, then the Docker container will be started after creation. If false, then the container is only created. Defaults to true.

Link copied to clipboard
val stdinOpen: Output<Boolean>? = null

If true, keep STDIN open even if not attached (docker run -i). Defaults to false.

Link copied to clipboard
val stopSignal: Output<String>? = null

Signal to stop a container (default SIGTERM).

Link copied to clipboard
val stopTimeout: Output<Int>? = null

Timeout (in seconds) to stop a container.

Link copied to clipboard
val storageOpts: Output<Map<String, String>>? = null

Key/value pairs for the storage driver options, e.g. size: 120G

Link copied to clipboard
val sysctls: Output<Map<String, String>>? = null

A map of kernel parameters (sysctls) to set in the container.

Link copied to clipboard
val tmpfs: Output<Map<String, String>>? = null

A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options.

Link copied to clipboard
val tty: Output<Boolean>? = null

If true, allocate a pseudo-tty (docker run -t). Defaults to false.

Link copied to clipboard
val ulimits: Output<List<ContainerUlimitArgs>>? = null

Ulimit options to add.

Link copied to clipboard
val uploads: Output<List<ContainerUploadArgs>>? = null

Specifies files to upload to the container before starting it. Only one of content or content_base64 can be set and at least one of them has to be set.

Link copied to clipboard
val user: Output<String>? = null

User used for run the first process. Format is user or user:group which user and group can be passed literraly or by name.

Link copied to clipboard
val usernsMode: Output<String>? = null

Sets the usernamespace mode for the container when usernamespace remapping option is enabled.

Link copied to clipboard
val volumes: Output<List<ContainerVolumeArgs>>? = null

Spec for mounting volumes in the container.

Link copied to clipboard
val wait: Output<Boolean>? = null

If true, then the Docker container is waited for being healthy state after creation. This requires your container to have a healthcheck, otherwise this provider will error. If false, then the container health state is not checked. Defaults to false.

Link copied to clipboard
val waitTimeout: Output<Int>? = null

The timeout in seconds to wait the container to be healthy after creation. Defaults to 60.

Link copied to clipboard
val workingDir: Output<String>? = null

The working directory for commands to run in.

Functions

Link copied to clipboard
open override fun toJava(): ContainerArgs