public class DefaultDockerClient extends Object implements DockerClient, Closeable
| Modifier and Type | Class and Description |
|---|---|
static class |
DefaultDockerClient.Builder |
DockerClient.BuildParameter, DockerClient.ListContainersParam, DockerClient.ListImagesFilterParam, DockerClient.ListImagesParam, DockerClient.LogsParameter| Modifier and Type | Field and Description |
|---|---|
private javax.ws.rs.client.Client |
client |
private static AtomicInteger |
CLIENT_COUNTER |
private static javax.ws.rs.core.GenericType<List<Container>> |
CONTAINER_LIST |
private static Pattern |
CONTAINER_NAME_PATTERN |
private static org.glassfish.jersey.client.ClientConfig |
DEFAULT_CONFIG |
private static long |
DEFAULT_CONNECT_TIMEOUT_MILLIS |
private static long |
DEFAULT_READ_TIMEOUT_MILLIS |
private ExecutorService |
executor |
private static javax.ws.rs.core.GenericType<List<Image>> |
IMAGE_LIST |
private static org.slf4j.Logger |
log |
static long |
NO_TIMEOUT |
private javax.ws.rs.client.Client |
noTimeoutClient |
private static javax.ws.rs.core.GenericType<List<RemovedImage>> |
REMOVED_IMAGE_LIST |
private URI |
uri |
private static String |
VERSION |
| Modifier | Constructor and Description |
|---|---|
private |
DefaultDockerClient(DefaultDockerClient.Builder builder)
Create a new client using the configuration of the builder.
|
|
DefaultDockerClient(String uri)
Create a new client with default configuration.
|
|
DefaultDockerClient(URI uri)
Create a new client with default configuration.
|
|
DefaultDockerClient(URI uri,
DockerCertificates dockerCertificates)
Create a new client with default configuration.
|
| Modifier and Type | Method and Description |
|---|---|
String |
build(Path directory,
DockerClient.BuildParameter... params)
Build a docker image.
|
String |
build(Path directory,
ProgressHandler handler,
DockerClient.BuildParameter... params)
Build a docker image.
|
String |
build(Path directory,
String name,
DockerClient.BuildParameter... params)
Build a docker image.
|
String |
build(Path directory,
String name,
ProgressHandler handler,
DockerClient.BuildParameter... params)
Build a docker image.
|
static DefaultDockerClient.Builder |
builder()
Create a new
DefaultDockerClient builder. |
void |
close()
Closes any and all underlying connections to docker, and release resources.
|
InputStream |
copyContainer(String containerId,
String path)
Copies some files out of a container.
|
ContainerCreation |
createContainer(ContainerConfig config)
Create a docker container.
|
ContainerCreation |
createContainer(ContainerConfig config,
String name)
Create a docker container.
|
InputStream |
exportContainer(String containerId)
Export a docker container as a tar archive.
|
private org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> |
getSchemeRegistry(DefaultDockerClient.Builder builder) |
Info |
info()
Get docker instance information.
|
ContainerInfo |
inspectContainer(String containerId)
Inspect a docker container.
|
ImageInfo |
inspectImage(String image)
Inspect a docker container image.
|
void |
killContainer(String containerId)
Kill a docker container.
|
List<Container> |
listContainers(DockerClient.ListContainersParam... params)
List docker containers.
|
List<Image> |
listImages(DockerClient.ListImagesParam... params) |
LogStream |
logs(String containerId,
DockerClient.LogsParameter... params)
Get docker container logs.
|
private String |
message(javax.ws.rs.core.Response response) |
private javax.ws.rs.client.WebTarget |
noTimeoutResource() |
String |
ping()
Ping the docker daemon.
|
private RuntimeException |
propagate(String method,
javax.ws.rs.client.WebTarget resource,
Exception e) |
void |
pull(String image)
Pull a docker container image.
|
void |
pull(String image,
ProgressHandler handler)
Pull a docker container image, using a custom ProgressMessageHandler
|
void |
push(String image)
Push a docker container image.
|
void |
push(String image,
ProgressHandler handler)
Push a docker container image, using a custom ProgressHandler
|
void |
removeContainer(String containerId)
Remove a docker container.
|
void |
removeContainer(String containerId,
boolean removeVolumes)
Remove a docker container.
|
List<RemovedImage> |
removeImage(String image)
Remove a docker image.
|
List<RemovedImage> |
removeImage(String image,
boolean force,
boolean noPrune)
Remove a docker image.
|
private <T> T |
request(String method,
Class<T> clazz,
javax.ws.rs.client.WebTarget resource,
javax.ws.rs.client.Invocation.Builder request) |
private <T> T |
request(String method,
Class<T> clazz,
javax.ws.rs.client.WebTarget resource,
javax.ws.rs.client.Invocation.Builder request,
javax.ws.rs.client.Entity<?> entity) |
private <T> T |
request(String method,
javax.ws.rs.core.GenericType<T> type,
javax.ws.rs.client.WebTarget resource,
javax.ws.rs.client.Invocation.Builder request) |
private void |
request(String method,
javax.ws.rs.client.WebTarget resource,
javax.ws.rs.client.Invocation.Builder request) |
private void |
request(String method,
javax.ws.rs.client.WebTarget resource,
javax.ws.rs.client.Invocation.Builder request,
javax.ws.rs.client.Entity<?> entity) |
private javax.ws.rs.client.WebTarget |
resource() |
void |
restartContainer(String containerId)
Restart a docker container.
|
void |
restartContainer(String containerId,
int secondsToWaitBeforeRestart)
Restart a docker container.
|
void |
startContainer(String containerId)
Start a docker container.
|
void |
startContainer(String containerId,
HostConfig hostConfig)
Start a docker container.
|
void |
stopContainer(String containerId,
int secondsToWaitBeforeKilling) |
void |
tag(String image,
String name)
Tag a docker image.
|
Version |
version()
Get the docker version.
|
ContainerExit |
waitContainer(String containerId)
Wait for a docker container to exit.
|
private static final String VERSION
private static final org.slf4j.Logger log
public static final long NO_TIMEOUT
private static final long DEFAULT_CONNECT_TIMEOUT_MILLIS
private static final long DEFAULT_READ_TIMEOUT_MILLIS
private static final org.glassfish.jersey.client.ClientConfig DEFAULT_CONFIG
private static final Pattern CONTAINER_NAME_PATTERN
private static final javax.ws.rs.core.GenericType<List<RemovedImage>> REMOVED_IMAGE_LIST
private static final AtomicInteger CLIENT_COUNTER
private final ExecutorService executor
private final javax.ws.rs.client.Client client
private final javax.ws.rs.client.Client noTimeoutClient
private final URI uri
public DefaultDockerClient(String uri)
uri - The docker rest api uri.public DefaultDockerClient(URI uri)
uri - The docker rest api uri.public DefaultDockerClient(URI uri, DockerCertificates dockerCertificates)
uri - The docker rest api uri.dockerCertificates - The certificates to use for HTTPS.private DefaultDockerClient(DefaultDockerClient.Builder builder)
private org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> getSchemeRegistry(DefaultDockerClient.Builder builder)
public void close()
DockerClientclose in interface DockerClientclose in interface Closeableclose in interface AutoCloseablepublic String ping() throws DockerException, InterruptedException
DockerClientping in interface DockerClientDockerExceptionInterruptedExceptionpublic Version version() throws DockerException, InterruptedException
DockerClientversion in interface DockerClientDockerExceptionInterruptedExceptionpublic Info info() throws DockerException, InterruptedException
DockerClientinfo in interface DockerClientDockerExceptionInterruptedExceptionpublic List<Container> listContainers(DockerClient.ListContainersParam... params) throws DockerException, InterruptedException
DockerClientlistContainers in interface DockerClientparams - Container listing and filtering options.DockerExceptionInterruptedExceptionpublic List<Image> listImages(DockerClient.ListImagesParam... params) throws DockerException, InterruptedException
listImages in interface DockerClientDockerExceptionInterruptedExceptionpublic ContainerCreation createContainer(ContainerConfig config) throws DockerException, InterruptedException
DockerClientcreateContainer in interface DockerClientconfig - The container configuration.ImageNotFoundException - if the image was not found (404).DockerExceptionInterruptedExceptionpublic ContainerCreation createContainer(ContainerConfig config, String name) throws DockerException, InterruptedException
DockerClientcreateContainer in interface DockerClientconfig - The container configuration.name - The container name.ImageNotFoundException - if the image was not found (404).DockerExceptionInterruptedExceptionpublic void startContainer(String containerId) throws DockerException, InterruptedException
DockerClientstartContainer in interface DockerClientcontainerId - The id of the container to start.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void startContainer(String containerId, HostConfig hostConfig) throws DockerException, InterruptedException
DockerClientstartContainer in interface DockerClientcontainerId - The id of the container to start.hostConfig - The docker host configuration to use when starting the container.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void restartContainer(String containerId) throws DockerException, InterruptedException
DockerClientrestartContainer in interface DockerClientcontainerId - The id of the container to restart.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void restartContainer(String containerId, int secondsToWaitBeforeRestart) throws DockerException, InterruptedException
DockerClientrestartContainer in interface DockerClientcontainerId - The id of the container to restart.secondsToWaitBeforeRestart - number of seconds to wait before killing the container.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void killContainer(String containerId) throws DockerException, InterruptedException
DockerClientkillContainer in interface DockerClientcontainerId - The id of the container to kill.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void stopContainer(String containerId, int secondsToWaitBeforeKilling) throws DockerException, InterruptedException
stopContainer in interface DockerClientDockerExceptionInterruptedExceptionpublic ContainerExit waitContainer(String containerId) throws DockerException, InterruptedException
DockerClientwaitContainer in interface DockerClientcontainerId - The id of the container to wait for.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void removeContainer(String containerId) throws DockerException, InterruptedException
DockerClientremoveContainer in interface DockerClientcontainerId - The id of the container to remove.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void removeContainer(String containerId, boolean removeVolumes) throws DockerException, InterruptedException
DockerClientremoveContainer in interface DockerClientcontainerId - The id of the container to remove.removeVolumes - Whether to remove volumes as well.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic InputStream exportContainer(String containerId) throws DockerException, InterruptedException
DockerClientexportContainer in interface DockerClientcontainerId - The id of the container to export.DockerExceptionInterruptedExceptionpublic InputStream copyContainer(String containerId, String path) throws DockerException, InterruptedException
DockerClientcopyContainer in interface DockerClientcontainerId - The id of the container to copy files from.path - The path inside of the container to copy. If this is a directory, it will
be copied recursively. If this is a file, only that file will be copied.copy(..., "/usr/share") will
result in a directory called share in the tar archive). The directory name is
completely resolved, so copying "/usr/share/././." will still create a directory called
"share" in the tar archive. If a single file was copied, that file will be the sole
entry in the tar archive. Copying "." or equivalently "/" will result in the
tar archive containing a single folder named after the container ID.DockerExceptionInterruptedExceptionpublic ContainerInfo inspectContainer(String containerId) throws DockerException, InterruptedException
DockerClientinspectContainer in interface DockerClientcontainerId - The id of the container to inspect.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionpublic void pull(String image) throws DockerException, InterruptedException
DockerClientpull in interface DockerClientimage - The image to pull.DockerExceptionInterruptedExceptionpublic void pull(String image, ProgressHandler handler) throws DockerException, InterruptedException
DockerClientpull in interface DockerClientimage - The image to pull.handler - The handler to use for processing each progress message received from Docker.DockerExceptionInterruptedExceptionpublic void push(String image) throws DockerException, InterruptedException
DockerClientpush in interface DockerClientimage - The image to push.DockerExceptionInterruptedExceptionpublic void push(String image, ProgressHandler handler) throws DockerException, InterruptedException
DockerClientpush in interface DockerClientimage - The image to push.handler - The handler to use for processing each progress message received from Docker.DockerExceptionInterruptedExceptionpublic void tag(String image, String name) throws DockerException, InterruptedException
DockerClienttag in interface DockerClientimage - The image to tag.name - The new name that will be applied to the image.DockerExceptionInterruptedExceptionpublic String build(Path directory, DockerClient.BuildParameter... params) throws DockerException, InterruptedException, IOException
DockerClientbuild in interface DockerClientdirectory - The directory containing the dockerfile.params - Additional flags to use during build.DockerExceptionInterruptedExceptionIOExceptionpublic String build(Path directory, String name, DockerClient.BuildParameter... params) throws DockerException, InterruptedException, IOException
DockerClientbuild in interface DockerClientdirectory - The directory containing the dockerfile.name - The repository name and optional tag to apply to the built image.params - Additional flags to use during build.DockerExceptionInterruptedExceptionIOExceptionpublic String build(Path directory, ProgressHandler handler, DockerClient.BuildParameter... params) throws DockerException, InterruptedException, IOException
DockerClientbuild in interface DockerClientdirectory - The directory containing the dockerfile.handler - The handler to use for processing each progress message received from Docker.params - Additional flags to use during build.DockerExceptionInterruptedExceptionIOExceptionpublic String build(Path directory, String name, ProgressHandler handler, DockerClient.BuildParameter... params) throws DockerException, InterruptedException, IOException
DockerClientbuild in interface DockerClientdirectory - The directory containing the dockerfile.name - The repository name and optional tag to apply to the built image.handler - The handler to use for processing each progress message received from Docker.params - Additional flags to use during build.DockerExceptionInterruptedExceptionIOExceptionpublic ImageInfo inspectImage(String image) throws DockerException, InterruptedException
DockerClientinspectImage in interface DockerClientimage - The image to inspect.ImageNotFoundException - if the image was not found (404).DockerExceptionInterruptedExceptionpublic List<RemovedImage> removeImage(String image) throws DockerException, InterruptedException
DockerClientremoveImage in interface DockerClientimage - The image to remove.ImageNotFoundException - if the image was not found (404).DockerExceptionInterruptedExceptionpublic List<RemovedImage> removeImage(String image, boolean force, boolean noPrune) throws DockerException, InterruptedException
DockerClientremoveImage in interface DockerClientimage - The image to remove.force - Force image removal.noPrune - Do not delete untagged parents.ImageNotFoundException - if the image was not found (404).DockerExceptionInterruptedExceptionpublic LogStream logs(String containerId, DockerClient.LogsParameter... params) throws DockerException, InterruptedException
DockerClientlogs in interface DockerClientcontainerId - The id of the container to get logs for.params - Params for controlling what streams to get and whether to tail or not.ContainerNotFoundException - if the container was not found (404).DockerExceptionInterruptedExceptionprivate javax.ws.rs.client.WebTarget resource()
private javax.ws.rs.client.WebTarget noTimeoutResource()
private <T> T request(String method, javax.ws.rs.core.GenericType<T> type, javax.ws.rs.client.WebTarget resource, javax.ws.rs.client.Invocation.Builder request) throws DockerException, InterruptedException
DockerExceptionInterruptedExceptionprivate <T> T request(String method, Class<T> clazz, javax.ws.rs.client.WebTarget resource, javax.ws.rs.client.Invocation.Builder request) throws DockerException, InterruptedException
DockerExceptionInterruptedExceptionprivate <T> T request(String method, Class<T> clazz, javax.ws.rs.client.WebTarget resource, javax.ws.rs.client.Invocation.Builder request, javax.ws.rs.client.Entity<?> entity) throws DockerException, InterruptedException
DockerExceptionInterruptedExceptionprivate void request(String method, javax.ws.rs.client.WebTarget resource, javax.ws.rs.client.Invocation.Builder request) throws DockerException, InterruptedException
DockerExceptionInterruptedExceptionprivate void request(String method, javax.ws.rs.client.WebTarget resource, javax.ws.rs.client.Invocation.Builder request, javax.ws.rs.client.Entity<?> entity) throws DockerException, InterruptedException
DockerExceptionInterruptedExceptionprivate RuntimeException propagate(String method, javax.ws.rs.client.WebTarget resource, Exception e) throws DockerException, InterruptedException
DockerExceptionInterruptedExceptionprivate String message(javax.ws.rs.core.Response response)
public static DefaultDockerClient.Builder builder()
DefaultDockerClient builder.Copyright © 2014. All rights reserved.