Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
233 changes: 164 additions & 69 deletions src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,111 +2,115 @@

import com.github.dockerjava.api.ConflictException;
import com.github.dockerjava.api.NotFoundException;
import com.github.dockerjava.api.model.Bind;
import com.github.dockerjava.api.model.Capability;
import com.github.dockerjava.api.model.Device;
import com.github.dockerjava.api.model.ExposedPort;
import com.github.dockerjava.api.model.HostConfig;
import com.github.dockerjava.api.model.Link;
import com.github.dockerjava.api.model.LxcConf;
import com.github.dockerjava.api.model.PortBinding;
import com.github.dockerjava.api.model.Ports;
import com.github.dockerjava.api.model.RestartPolicy;
import com.github.dockerjava.api.model.Volume;
import com.github.dockerjava.api.model.VolumesFrom;

public interface CreateContainerCmd extends DockerCmd<CreateContainerResponse>{

public CreateContainerCmd withName(String name);

public String getName();

public CreateContainerCmd withExposedPorts(ExposedPort... exposedPorts);

public ExposedPort[] getExposedPorts();
public static interface Exec extends DockerCmdExec<CreateContainerCmd, CreateContainerResponse> {
}

public boolean isDisableNetwork();
/**
* @throws NotFoundException No such container
* @throws ConflictException Named container already exists
*/
@Override
public CreateContainerResponse exec() throws NotFoundException,
ConflictException;

public String getWorkingDir();
public Bind[] getBinds();

public CreateContainerCmd withWorkingDir(String workingDir);
public Capability[] getCapAdd();

public String getHostName();
public Capability[] getCapDrop();

public CreateContainerCmd withDisableNetwork(boolean disableNetwork);
public String[] getCmd();

public CreateContainerCmd withHostName(String hostName);
public String getCpuset();

public String[] getPortSpecs();
public int getCpuShares();

public CreateContainerCmd withPortSpecs(String... portSpecs);
public Device[] getDevices();

public String getUser();
public String[] getDns();

public String[] getDnsSearch();

public CreateContainerCmd withUser(String user);
public String[] getEntrypoint();

public boolean isTty();
public String[] getEnv();

public CreateContainerCmd withTty(boolean tty);
public ExposedPort[] getExposedPorts();

public String[] getExtraHosts();

public boolean isStdinOpen();
public HostConfig getHostConfig();

public CreateContainerCmd withStdinOpen(boolean stdinOpen);
public String getHostName();

public boolean isStdInOnce();
public String getImage();

public CreateContainerCmd withStdInOnce(boolean stdInOnce);
public Link[] getLinks();

public LxcConf[] getLxcConf();

public long getMemoryLimit();

public CreateContainerCmd withMemoryLimit(long memoryLimit);

public long getMemorySwap();

public CreateContainerCmd withMemorySwap(long memorySwap);

public int getCpuShares();

public CreateContainerCmd withCpuShares(int cpuShares);

public String getCpuset();
public String getName();

public String getNetworkMode();

public Ports getPortBindings();

public CreateContainerCmd withCpuset(String cpuset);
public String[] getPortSpecs();

public RestartPolicy getRestartPolicy();

public boolean isAttachStdin();
public String getUser();

public CreateContainerCmd withAttachStdin(boolean attachStdin);
public Volume[] getVolumes();

public boolean isAttachStdout();
public VolumesFrom[] getVolumesFrom();

public CreateContainerCmd withAttachStdout(boolean attachStdout);
public String getWorkingDir();

public boolean isAttachStderr();

public CreateContainerCmd withAttachStderr(boolean attachStderr);

public String[] getEnv();

public CreateContainerCmd withEnv(String... env);

public String[] getCmd();

public CreateContainerCmd withCmd(String... cmd);

public String[] getDns();
public boolean isAttachStdin();

public CreateContainerCmd withDns(String... dns);
public boolean isAttachStdout();

public String getImage();
public boolean isDisableNetwork();

public Boolean isPrivileged();

public Boolean isPublishAllPorts();

public CreateContainerCmd withImage(String image);
public boolean isStdInOnce();

public Volume[] getVolumes();
public boolean isStdinOpen();

public CreateContainerCmd withVolumes(Volume... volumes);
public boolean isTty();

public VolumesFrom[] getVolumesFrom();
public CreateContainerCmd withAttachStderr(boolean attachStderr);

public CreateContainerCmd withVolumesFrom(VolumesFrom... volumesFrom);
public CreateContainerCmd withAttachStdin(boolean attachStdin);

public HostConfig getHostConfig();
public CreateContainerCmd withAttachStdout(boolean attachStdout);

public CreateContainerCmd withHostConfig(HostConfig hostConfig);

public Capability[] getCapAdd();
public CreateContainerCmd withBinds(Bind... binds);

/**
* Add linux <a
Expand All @@ -116,30 +120,121 @@ public interface CreateContainerCmd extends DockerCmd<CreateContainerResponse>{
*/
public CreateContainerCmd withCapAdd(Capability... capAdd);

public Capability[] getCapDrop();

/**
* Drop linux <a
* href="http://man7.org/linux/man-pages/man7/capabilities.7.html">kernel
* capability</a> from the container. For example: dropping {@link Capability#CHOWN}
* prevents the container from changing the owner of any files.
*/
public CreateContainerCmd withCapDrop(Capability... capDrop);

public CreateContainerCmd withCmd(String... cmd);

public CreateContainerCmd withCpuset(String cpuset);

public CreateContainerCmd withCpuShares(int cpuShares);

public String[] getEntrypoint();
/**
* Add host devices to the container
*/
public CreateContainerCmd withDevices(Device... devices);

public CreateContainerCmd withDisableNetwork(boolean disableNetwork);

/**
* Set custom DNS servers
*/
public CreateContainerCmd withDns(String... dns);

/**
* Set custom DNS search domains
*/
public CreateContainerCmd withDnsSearch(String... dnsSearch);

public CreateContainerCmd withEntrypoint(String... entrypoint);

public CreateContainerCmd withEnv(String... env);

public CreateContainerCmd withExposedPorts(ExposedPort... exposedPorts);

/**
* @throws NotFoundException No such container
* @throws ConflictException Named container already exists
* Add hostnames to /etc/hosts in the container
*/
@Override
public CreateContainerResponse exec() throws NotFoundException,
ConflictException;
public CreateContainerCmd withExtraHosts(String... extraHosts);

public static interface Exec extends DockerCmdExec<CreateContainerCmd, CreateContainerResponse> {
}
public CreateContainerCmd withHostConfig(HostConfig hostConfig);

public CreateContainerCmd withHostName(String hostName);

public CreateContainerCmd withImage(String image);

/**
* Add link to another container.
*/
public CreateContainerCmd withLinks(Link... links);

public CreateContainerCmd withLxcConf(LxcConf... lxcConf);

public CreateContainerCmd withMemoryLimit(long memoryLimit);

public CreateContainerCmd withMemorySwap(long memorySwap);

public CreateContainerCmd withName(String name);


/**
* Set the Network mode for the container
* <ul>
* <li>'bridge': creates a new network stack for the container on the docker
* bridge</li>
* <li>'none': no networking for this container</li>
* <li>'container:<name|id>': reuses another container network stack</li>
* <li>'host': use the host network stack inside the container. Note: the
* host mode gives the container full access to local system services such
* as D-bus and is therefore considered insecure.</li>
* </ul>
*/
public CreateContainerCmd withNetworkMode(String networkMode);

/**
* Add one or more {@link PortBinding}s.
* This corresponds to the <code>--publish</code> (<code>-p</code>)
* option of the <code>docker run</code> CLI command.
*/
public CreateContainerCmd withPortBindings(PortBinding... portBindings);

/**
* Add the port bindings that are contained in the given {@link Ports}
* object.
*
* @see #withPortBindings(PortBinding...)
*/
public CreateContainerCmd withPortBindings(Ports portBindings);

public CreateContainerCmd withPortSpecs(String... portSpecs);

public CreateContainerCmd withPrivileged(boolean privileged);

public CreateContainerCmd withPublishAllPorts(boolean publishAllPorts);

/**
* Set custom {@link RestartPolicy} for the container. Defaults to
* {@link RestartPolicy#noRestart()}
*/
public CreateContainerCmd withRestartPolicy(RestartPolicy restartPolicy);

public CreateContainerCmd withStdInOnce(boolean stdInOnce);

public CreateContainerCmd withStdinOpen(boolean stdinOpen);

public CreateContainerCmd withTty(boolean tty);

public CreateContainerCmd withUser(String user);

public CreateContainerCmd withVolumes(Volume... volumes);

public CreateContainerCmd withVolumesFrom(VolumesFrom... volumesFrom);

public CreateContainerCmd withWorkingDir(String workingDir);

}
Loading