Class DefaultDockerClient

  • All Implemented Interfaces:
    DockerClient, java.io.Closeable, java.lang.AutoCloseable

    public class DefaultDockerClient
    extends java.lang.Object
    implements DockerClient, java.io.Closeable
    • Field Detail

      • log

        private static final org.slf4j.Logger log
      • DEFAULT_CONNECT_TIMEOUT_MILLIS

        private static final long DEFAULT_CONNECT_TIMEOUT_MILLIS
      • DEFAULT_READ_TIMEOUT_MILLIS

        private static final long DEFAULT_READ_TIMEOUT_MILLIS
      • DEFAULT_CONNECTION_POOL_SIZE

        private static final int DEFAULT_CONNECTION_POOL_SIZE
        See Also:
        Constant Field Values
      • defaultConfig

        private final org.glassfish.jersey.client.ClientConfig defaultConfig
      • CONTAINER_NAME_PATTERN

        private static final java.util.regex.Pattern CONTAINER_NAME_PATTERN
      • CONTAINER_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Container>> CONTAINER_LIST
      • CONTAINER_CHANGE_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<ContainerChange>> CONTAINER_CHANGE_LIST
      • IMAGE_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Image>> IMAGE_LIST
      • NETWORK_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Network>> NETWORK_LIST
      • IMAGES_SEARCH_RESULT_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<ImageSearchResult>> IMAGES_SEARCH_RESULT_LIST
      • REMOVED_IMAGE_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<RemovedImage>> REMOVED_IMAGE_LIST
      • IMAGE_HISTORY_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<ImageHistory>> IMAGE_HISTORY_LIST
      • SERVICE_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Service>> SERVICE_LIST
      • DISTRIBUTION

        private static final javax.ws.rs.core.GenericType<Distribution> DISTRIBUTION
      • TASK_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Task>> TASK_LIST
      • NODE_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Node>> NODE_LIST
      • CONFIG_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Config>> CONFIG_LIST
      • SECRET_LIST

        private static final javax.ws.rs.core.GenericType<java.util.List<Secret>> SECRET_LIST
      • client

        private final javax.ws.rs.client.Client client
      • noTimeoutClient

        private final javax.ws.rs.client.Client noTimeoutClient
      • uri

        private final java.net.URI uri
      • apiVersion

        private final java.lang.String apiVersion
      • headers

        private final java.util.Map<java.lang.String,​java.lang.Object> headers
    • Constructor Detail

      • DefaultDockerClient

        public DefaultDockerClient​(java.lang.String uri)
        Create a new client with default configuration.
        Parameters:
        uri - The docker rest api uri.
      • DefaultDockerClient

        public DefaultDockerClient​(java.net.URI uri)
        Create a new client with default configuration.
        Parameters:
        uri - The docker rest api uri.
      • DefaultDockerClient

        public DefaultDockerClient​(java.net.URI uri,
                                   DockerCertificatesStore dockerCertificatesStore)
        Create a new client with default configuration.
        Parameters:
        uri - The docker rest api uri.
        dockerCertificatesStore - The certificates to use for HTTPS.
      • DefaultDockerClient

        protected DefaultDockerClient​(DefaultDockerClient.Builder builder)
        Create a new client using the configuration of the builder.
        Parameters:
        builder - DefaultDockerClient builder
    • Method Detail

      • getClient

        javax.ws.rs.client.Client getClient()
      • getNoTimeoutClient

        javax.ws.rs.client.Client getNoTimeoutClient()
      • updateProxy

        private org.glassfish.jersey.client.ClientConfig updateProxy​(org.glassfish.jersey.client.ClientConfig config,
                                                                     DefaultDockerClient.Builder builder)
      • toRegExp

        private java.lang.String toRegExp​(java.lang.String hostnameWithWildcards)
      • getHost

        public java.lang.String getHost()
        Description copied from interface: DockerClient
        Get the Docker host address.
        Specified by:
        getHost in interface DockerClient
        Returns:
        the docker host name or IP
      • getConnectionManager

        private org.apache.http.impl.conn.PoolingHttpClientConnectionManager getConnectionManager​(DefaultDockerClient.Builder builder)
      • getSchemeRegistry

        private org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> getSchemeRegistry​(DefaultDockerClient.Builder builder)
      • close

        public void close()
        Description copied from interface: DockerClient
        Closes any and all underlying connections to docker, and release resources.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface DockerClient
      • ping

        public java.lang.String ping()
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Ping the docker daemon. Returns "OK" if all is well, though that it simply returns a 200 status is probably sufficient information.
        Specified by:
        ping in interface DockerClient
        Returns:
        String "OK"
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • version

        public Version version()
                        throws DockerException,
                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get the docker version.
        Specified by:
        version in interface DockerClient
        Returns:
        docker version
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • auth

        public int auth​(RegistryAuth registryAuth)
                 throws DockerException,
                        java.lang.InterruptedException
        Description copied from interface: DockerClient
        Check auth configuration.
        Specified by:
        auth in interface DockerClient
        Parameters:
        registryAuth - The RegistryAuth needed to pull the image.
        Returns:
        status code of auth request
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • info

        public Info info()
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get docker instance information.
        Specified by:
        info in interface DockerClient
        Returns:
        docker info
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • getQueryParamMap

        private java.util.Map<java.lang.String,​java.lang.String> getQueryParamMap​(javax.ws.rs.client.WebTarget resource)
      • urlEncode

        private java.lang.String urlEncode​(java.lang.String unencoded)
                                    throws DockerException
        URL-encodes a string when used as a URL query parameter's value.
        Parameters:
        unencoded - A string that may contain characters not allowed in URL query parameters.
        Returns:
        URL-encoded String
        Throws:
        DockerException - if there's an UnsupportedEncodingException
      • urlEncodeFilters

        private java.lang.String urlEncodeFilters​(java.util.Map<java.lang.String,​java.util.List<java.lang.String>> filters)
                                           throws DockerException
        Takes a map of filters and URL-encodes them. If the map is empty or an exception occurs, return null.
        Parameters:
        filters - A map of filters.
        Returns:
        String
        Throws:
        DockerException - if there's an IOException
      • createContainer

        public ContainerCreation createContainer​(ContainerConfig config)
                                          throws DockerException,
                                                 java.lang.InterruptedException
        Description copied from interface: DockerClient
        Create a docker container.
        Specified by:
        createContainer in interface DockerClient
        Parameters:
        config - The container configuration.
        Returns:
        Container creation result with container id and eventual warnings from docker.
        Throws:
        ImageNotFoundException - if the requested parent image was not found (404)
        DockerException - if logs cannot be attached, because container is not running (406), or if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • createContainer

        public ContainerCreation createContainer​(ContainerConfig config,
                                                 java.lang.String name)
                                          throws DockerException,
                                                 java.lang.InterruptedException
        Description copied from interface: DockerClient
        Create a docker container.
        Specified by:
        createContainer in interface DockerClient
        Parameters:
        config - The container configuration.
        name - The container name.
        Returns:
        Container creation result with container id and eventual warnings from docker.
        Throws:
        ImageNotFoundException - if the requested parent image was not found (404)
        DockerException - if logs cannot be attached, because container is not running (406), or if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • startContainer

        public void startContainer​(java.lang.String containerId)
                            throws DockerException,
                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Start a docker container.
        Specified by:
        startContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to start.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • containerAction

        private void containerAction​(java.lang.String containerId,
                                     java.lang.String action)
                              throws DockerException,
                                     java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • containerAction

        private void containerAction​(java.lang.String containerId,
                                     java.lang.String action,
                                     javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.String> queryParameters)
                              throws DockerException,
                                     java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • pauseContainer

        public void pauseContainer​(java.lang.String containerId)
                            throws DockerException,
                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Pause a docker container.
        Specified by:
        pauseContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to pause.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • unpauseContainer

        public void unpauseContainer​(java.lang.String containerId)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Unpause a docker container.
        Specified by:
        unpauseContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to pause.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • restartContainer

        public void restartContainer​(java.lang.String containerId)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Restart a docker container. with a 10 second default wait
        Specified by:
        restartContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to restart.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • restartContainer

        public void restartContainer​(java.lang.String containerId,
                                     int secondsToWaitBeforeRestart)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Restart a docker container.
        Specified by:
        restartContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to restart.
        secondsToWaitBeforeRestart - number of seconds to wait before killing the container.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • killContainer

        public void killContainer​(java.lang.String containerId)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Kill a docker container. Note: by default SIGKILL is sent.
        Specified by:
        killContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to kill.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • killContainer

        public void killContainer​(java.lang.String containerId,
                                  DockerClient.Signal signal)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Kill a docker container.
        Specified by:
        killContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to kill.
        signal - Signal used to kill the process.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • stopContainer

        public void stopContainer​(java.lang.String containerId,
                                  int secondsToWaitBeforeKilling)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Stop a docker container by sending a SIGTERM, and following up with a SIGKILL if the container doesn't exit gracefully and in a timely manner.
        Specified by:
        stopContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to stop.
        secondsToWaitBeforeKilling - Time to wait after SIGTERM before sending SIGKILL.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • waitContainer

        public ContainerExit waitContainer​(java.lang.String containerId)
                                    throws DockerException,
                                           java.lang.InterruptedException
        Description copied from interface: DockerClient
        Wait for a docker container to exit.
        Specified by:
        waitContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to wait for.
        Returns:
        Exit response with status code.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • removeContainer

        public void removeContainer​(java.lang.String containerId)
                             throws DockerException,
                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove a docker container.
        Specified by:
        removeContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to remove.
        Throws:
        BadParamException - if one or more params were bad (400)
        ContainerNotFoundException - if container is not found (404)
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • removeContainer

        @Deprecated
        public void removeContainer​(java.lang.String containerId,
                                    boolean removeVolumes)
                             throws DockerException,
                                    java.lang.InterruptedException
        Deprecated.
        Description copied from interface: DockerClient
        Remove a docker container.
        Specified by:
        removeContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to remove.
        removeVolumes - Whether to remove volumes as well.
        Throws:
        BadParamException - if one or more params were bad (400)
        ContainerNotFoundException - if container is not found (404)
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • exportContainer

        public java.io.InputStream exportContainer​(java.lang.String containerId)
                                            throws DockerException,
                                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Export a docker container as a tar archive.
        Specified by:
        exportContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to export.
        Returns:
        A stream in tar format that contains the contents of the container file system.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • copyContainer

        @Deprecated
        public java.io.InputStream copyContainer​(java.lang.String containerId,
                                                 java.lang.String path)
                                          throws DockerException,
                                                 java.lang.InterruptedException
        Deprecated.
        Description copied from interface: DockerClient
        Copies some files out of a container. (removed on API version 1.24)
        Specified by:
        copyContainer in interface DockerClient
        Parameters:
        containerId - 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.
        Returns:
        A stream in tar format that contains the copied files. If a directory was copied, the directory will be at the root of the tar archive (so 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.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        UnsupportedApiVersionException - If client API is greater than or equal to 1.24
        java.lang.InterruptedException - If the thread is interrupted
      • archiveContainer

        public java.io.InputStream archiveContainer​(java.lang.String containerId,
                                                    java.lang.String path)
                                             throws DockerException,
                                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Copies an archive out of a container. (API version 1.20+)
        Specified by:
        archiveContainer in interface DockerClient
        Parameters:
        containerId - 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.
        Returns:
        A stream in tar format that contains the copied files. If a directory was copied, the directory will be at the root of the tar archive (so 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.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • topContainer

        public TopResults topContainer​(java.lang.String containerId)
                                throws DockerException,
                                       java.lang.InterruptedException
        Description copied from interface: DockerClient
        List processes running inside the container by using ps.
        Specified by:
        topContainer in interface DockerClient
        Parameters:
        containerId - the id of the container to examine
        Returns:
        the titles and process list for the container
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • topContainer

        public TopResults topContainer​(java.lang.String containerId,
                                       java.lang.String psArgs)
                                throws DockerException,
                                       java.lang.InterruptedException
        Description copied from interface: DockerClient
        List processes running inside the container using ps and the given arguments.
        Specified by:
        topContainer in interface DockerClient
        Parameters:
        containerId - the id of the container to examine
        psArgs - the arguments to pass to ps inside the container, e.g., "-ef"
        Returns:
        the titles and process list for the container
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • copyToContainer

        public void copyToContainer​(java.nio.file.Path directory,
                                    java.lang.String containerId,
                                    java.lang.String path)
                             throws DockerException,
                                    java.lang.InterruptedException,
                                    java.io.IOException
        Description copied from interface: DockerClient
        Copies some files from host to container. (API version 1.20+)
        Specified by:
        copyToContainer in interface DockerClient
        Parameters:
        directory - The path to sent to container
        containerId - The id of the container to sent files.
        path - The path inside of the container to put files.
        Throws:
        BadParamException - if one or more params were bad (400)
        PermissionException - if the volume or container root file system is marked "read only"
        ContainerNotFoundException - if container is not found (404)
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
        java.io.IOException - If IOException
      • copyToContainer

        public void copyToContainer​(java.io.InputStream tarStream,
                                    java.lang.String containerId,
                                    java.lang.String path)
                             throws DockerException,
                                    java.lang.InterruptedException
        Specified by:
        copyToContainer in interface DockerClient
        Throws:
        DockerException
        java.lang.InterruptedException
      • inspectContainerChanges

        public java.util.List<ContainerChange> inspectContainerChanges​(java.lang.String containerId)
                                                                throws DockerException,
                                                                       java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect changes on a container's filesystem.
        Specified by:
        inspectContainerChanges in interface DockerClient
        Parameters:
        containerId - The id of the container.
        Returns:
        A list of the changes to the container file system.
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectContainer

        public ContainerInfo inspectContainer​(java.lang.String containerId)
                                       throws DockerException,
                                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect a docker container.
        Specified by:
        inspectContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to inspect.
        Returns:
        Info about the container.
        Throws:
        ContainerNotFoundException - if container was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • commitContainer

        public ContainerCreation commitContainer​(java.lang.String containerId,
                                                 java.lang.String repo,
                                                 java.lang.String tag,
                                                 ContainerConfig config,
                                                 java.lang.String comment,
                                                 java.lang.String author)
                                          throws DockerException,
                                                 java.lang.InterruptedException
        Description copied from interface: DockerClient
        Create a new image from a container's changes.
        Specified by:
        commitContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to commit.
        repo - repository to commit to.
        tag - image tag.
        config - ContainerConfig to commit.
        comment - commit message.
        author - image author.
        Returns:
        ContainerCreation reply.
        Throws:
        ContainerNotFoundException - if container was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • renameContainer

        public void renameContainer​(java.lang.String containerId,
                                    java.lang.String name)
                             throws DockerException,
                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Rename a docker container.
        Specified by:
        renameContainer in interface DockerClient
        Parameters:
        containerId - The id of the container to rename.
        name - The new name the container will have
        Throws:
        ContainerNotFoundException - if container cannot be found (404)
        ContainerRenameConflictException - if name is already assigned (409)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateContainer

        public ContainerUpdate updateContainer​(java.lang.String containerId,
                                               HostConfig config)
                                        throws DockerException,
                                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update an existing container. Only available in Docker API >= 1.22.
        Specified by:
        updateContainer in interface DockerClient
        Parameters:
        containerId - the identifier of the container
        config - the new container host config
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • searchImages

        public java.util.List<ImageSearchResult> searchImages​(java.lang.String term)
                                                       throws DockerException,
                                                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        Search for images on Docker Hub

        This method is broken for Docker 1.7.x because of a Docker bug. See https://github.com/docker/docker/pull/14850.

        Specified by:
        searchImages in interface DockerClient
        Parameters:
        term - the search term
        Returns:
        a list of matches for the given search term
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • load

        @Deprecated
        public void load​(java.lang.String image,
                         java.io.InputStream imagePayload)
                  throws DockerException,
                         java.lang.InterruptedException
        Deprecated.
        Description copied from interface: DockerClient
        Creates a single image from a tarball. This method also tags the image with the given image name upon loading completion.
        Specified by:
        load in interface DockerClient
        Parameters:
        image - the name to assign to the image.
        imagePayload - the image's payload (i.e.: the stream corresponding to the image's .tar file).
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • load

        @Deprecated
        public void load​(java.lang.String image,
                         java.io.InputStream imagePayload,
                         ProgressHandler handler)
                  throws DockerException,
                         java.lang.InterruptedException
        Deprecated.
        Description copied from interface: DockerClient
        Creates a single image from a tarball. This method also tags the image with the given image name upon loading completion.
        Specified by:
        load in interface DockerClient
        Parameters:
        image - the name to assign to the image.
        imagePayload - the image's payload (i.e.: the stream corresponding to the image's .tar file).
        handler - The handler to use for processing each progress message received from Docker.
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • load

        public java.util.Set<java.lang.String> load​(java.io.InputStream imagePayload)
                                             throws DockerException,
                                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Load a set of images and tags from a tarball.
        Specified by:
        load in interface DockerClient
        Parameters:
        imagePayload - the image's payload (i.e.: the stream corresponding to the image's .tar file).
        Returns:
        a set of all loaded images
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • load

        public java.util.Set<java.lang.String> load​(java.io.InputStream imagePayload,
                                                    ProgressHandler handler)
                                             throws DockerException,
                                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Load a set of images and tags from a tarball, using a custom ProgressMessageHandler.
        Specified by:
        load in interface DockerClient
        Parameters:
        imagePayload - the image's payload (i.e.: the stream corresponding to the image's .tar file).
        handler - The handler to use for processing each progress message received from Docker.
        Returns:
        a set of all loaded images
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • create

        public void create​(java.lang.String image,
                           java.io.InputStream imagePayload)
                    throws DockerException,
                           java.lang.InterruptedException
        Description copied from interface: DockerClient
        Creates a single image from a tarball. This method also tags the image with the given image name upon loading completion.
        Specified by:
        create in interface DockerClient
        Parameters:
        image - the name to assign to the image.
        imagePayload - the image's payload (i.e.: the stream corresponding to the image's .tar file).
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • create

        public void create​(java.lang.String image,
                           java.io.InputStream imagePayload,
                           ProgressHandler handler)
                    throws DockerException,
                           java.lang.InterruptedException
        Description copied from interface: DockerClient
        Creates a single image from a tarball. This method also tags the image with the given image name upon loading completion.
        Specified by:
        create in interface DockerClient
        Parameters:
        image - the name to assign to the image.
        imagePayload - the image's payload (i.e.: the stream corresponding to the image's .tar file).
        handler - The handler to use for processing each progress message received from Docker.
        Throws:
        DockerException - if a server error occurred (500).
        java.lang.InterruptedException - if the thread is interrupted.
      • save

        public java.io.InputStream save​(java.lang.String... images)
                                 throws DockerException,
                                        java.io.IOException,
                                        java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get a tarball containing all images and metadata for the repository specified.
        Specified by:
        save in interface DockerClient
        Parameters:
        images - the name(s) of one or more images to save. If a specific name and tag (e.g. ubuntu:latest), then only that image (and its parents) are returned. If an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the 'repositories' file in the tarball, as there were no image names referenced.
        Returns:
        the images' .tar streams.
        Throws:
        DockerException - if a server error occurred (500).
        java.io.IOException - if the server started returning, but an I/O error occurred in the context of processing it on the client-side.
        java.lang.InterruptedException - if the thread is interrupted.
      • saveMultiple

        public java.io.InputStream saveMultiple​(java.lang.String... images)
                                         throws DockerException,
                                                java.io.IOException,
                                                java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get a tarball containing all images and metadata for one or more repositories.
        Specified by:
        saveMultiple in interface DockerClient
        Parameters:
        images - the name or id of the image to save. if it is a specific name and tag (e.g. ubuntu:latest), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.
        Returns:
        a tar stream containing the image(s)
        Throws:
        DockerException - if a server error occurred (500).
        java.io.IOException - if the server started returning, but an I/O error occurred in the context of processing it on the client-side.
        java.lang.InterruptedException - if the thread is interrupted.
      • pull

        public void pull​(java.lang.String image)
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Pull a docker container image.
        Specified by:
        pull in interface DockerClient
        Parameters:
        image - The image to pull.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • pull

        public void pull​(java.lang.String image,
                         ProgressHandler handler)
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Pull a docker container image, using a custom ProgressMessageHandler
        Specified by:
        pull in interface DockerClient
        Parameters:
        image - The image to pull.
        handler - The handler to use for processing each progress message received from Docker.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • pull

        public void pull​(java.lang.String image,
                         RegistryAuth registryAuth)
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Pull a private docker container image.
        Specified by:
        pull in interface DockerClient
        Parameters:
        image - The image to pull.
        registryAuth - The RegistryAuth needed to pull the image.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • pull

        public void pull​(java.lang.String image,
                         RegistryAuth registryAuth,
                         ProgressHandler handler)
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Pull a private docker container image, using a custom ProgressMessageHandler.
        Specified by:
        pull in interface DockerClient
        Parameters:
        image - The image to pull.
        registryAuth - The RegistryAuth needed to pull the image.
        handler - The handler to use for processing each progress message received from Docker.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • push

        public void push​(java.lang.String image)
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Push a docker container image.
        Specified by:
        push in interface DockerClient
        Parameters:
        image - The image to push.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • push

        public void push​(java.lang.String image,
                         ProgressHandler handler)
                  throws DockerException,
                         java.lang.InterruptedException
        Description copied from interface: DockerClient
        Push a docker container image, using a custom ProgressHandler
        Specified by:
        push in interface DockerClient
        Parameters:
        image - The image to push.
        handler - The handler to use for processing each progress message received from Docker.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • tag

        public void tag​(java.lang.String image,
                        java.lang.String name)
                 throws DockerException,
                        java.lang.InterruptedException
        Description copied from interface: DockerClient
        Tag a docker image.
        Specified by:
        tag in interface DockerClient
        Parameters:
        image - The image to tag.
        name - The new name that will be applied to the image.
        Throws:
        BadParamException - if one or more params were bad (400)
        ImageNotFoundException - if image was not found (404)
        ConflictException - conflict (409)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • tag

        public void tag​(java.lang.String image,
                        java.lang.String name,
                        boolean force)
                 throws DockerException,
                        java.lang.InterruptedException
        Description copied from interface: DockerClient
        Tag a docker image.
        Specified by:
        tag in interface DockerClient
        Parameters:
        image - The image to tag.
        name - The new name that will be applied to the image.
        force - Whether to force the tagging even if the tag is already assigned to another image.
        Throws:
        BadParamException - if one or more params were bad (400)
        ImageNotFoundException - if image was not found (404)
        ConflictException - conflict (409)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • build

        public java.lang.String build​(java.nio.file.Path directory,
                                      DockerClient.BuildParam... params)
                               throws DockerException,
                                      java.lang.InterruptedException,
                                      java.io.IOException
        Description copied from interface: DockerClient
        Build a docker image.
        Specified by:
        build in interface DockerClient
        Parameters:
        directory - The directory containing the dockerfile.
        params - Additional flags to use during build.
        Returns:
        The id of the built image if successful, otherwise null.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
        java.io.IOException - If some IO shit happened.
      • build

        public java.lang.String build​(java.nio.file.Path directory,
                                      java.lang.String name,
                                      DockerClient.BuildParam... params)
                               throws DockerException,
                                      java.lang.InterruptedException,
                                      java.io.IOException
        Description copied from interface: DockerClient
        Build a docker image.
        Specified by:
        build in interface DockerClient
        Parameters:
        directory - 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.
        Returns:
        The id of the built image if successful, otherwise null.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
        java.io.IOException - If some IO shit happened.
      • build

        public java.lang.String build​(java.nio.file.Path directory,
                                      ProgressHandler handler,
                                      DockerClient.BuildParam... params)
                               throws DockerException,
                                      java.lang.InterruptedException,
                                      java.io.IOException
        Description copied from interface: DockerClient
        Build a docker image.
        Specified by:
        build in interface DockerClient
        Parameters:
        directory - 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.
        Returns:
        The id of the built image if successful, otherwise null.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
        java.io.IOException - If some IO shit happened.
      • build

        public java.lang.String build​(java.nio.file.Path directory,
                                      java.lang.String name,
                                      ProgressHandler handler,
                                      DockerClient.BuildParam... params)
                               throws DockerException,
                                      java.lang.InterruptedException,
                                      java.io.IOException
        Description copied from interface: DockerClient
        Build a docker image.
        Specified by:
        build in interface DockerClient
        Parameters:
        directory - 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.
        Returns:
        The id of the built image if successful, otherwise null.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
        java.io.IOException - If some IO shit happened.
      • build

        public java.lang.String build​(java.nio.file.Path directory,
                                      java.lang.String name,
                                      java.lang.String dockerfile,
                                      ProgressHandler handler,
                                      DockerClient.BuildParam... params)
                               throws DockerException,
                                      java.lang.InterruptedException,
                                      java.io.IOException
        Description copied from interface: DockerClient
        Build a docker image.
        Specified by:
        build in interface DockerClient
        Parameters:
        directory - The directory containing the dockerfile.
        name - The repository name and optional tag to apply to the built image.
        dockerfile - The path within the build context to the Dockerfile
        handler - The handler to use for processing each progress message received from Docker.
        params - Additional flags to use during build.
        Returns:
        The id of the built image if successful, otherwise null.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
        java.io.IOException - If some IO shit happened.
      • inspectImage

        public ImageInfo inspectImage​(java.lang.String image)
                               throws DockerException,
                                      java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect a docker container image.
        Specified by:
        inspectImage in interface DockerClient
        Parameters:
        image - The image to inspect.
        Returns:
        Info about the image.
        Throws:
        ImageNotFoundException - if image was not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • removeImage

        public java.util.List<RemovedImage> removeImage​(java.lang.String image)
                                                 throws DockerException,
                                                        java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove a docker image.
        Specified by:
        removeImage in interface DockerClient
        Parameters:
        image - The image to remove.
        Returns:
        A list describing each image which was removed.
        Throws:
        ImageNotFoundException - if image was not found (404)
        ConflictException - conflict (409)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • removeImage

        public java.util.List<RemovedImage> removeImage​(java.lang.String image,
                                                        boolean force,
                                                        boolean noPrune)
                                                 throws DockerException,
                                                        java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove a docker image.
        Specified by:
        removeImage in interface DockerClient
        Parameters:
        image - The image to remove.
        force - Force image removal.
        noPrune - Do not delete untagged parents.
        Returns:
        A list describing each image which was removed.
        Throws:
        ImageNotFoundException - if image was not found (404)
        ConflictException - conflict (409)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • history

        public java.util.List<ImageHistory> history​(java.lang.String image)
                                             throws DockerException,
                                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Return the history of the image.
        Specified by:
        history in interface DockerClient
        Parameters:
        image - An image name or ID.
        Returns:
        A List of ImageHistory
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • logs

        public LogStream logs​(java.lang.String containerId,
                              DockerClient.LogsParam... params)
                       throws DockerException,
                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get docker container logs.
        Specified by:
        logs in interface DockerClient
        Parameters:
        containerId - The id of the container to get logs for.
        params - Params for controlling what streams to get and whether to tail or not.
        Returns:
        A log message stream.
        Throws:
        BadParamException - if one or more params were bad (400)
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • events

        public EventStream events​(DockerClient.EventsParam... params)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Watches the docker API for events.

        This method is broken for Docker 1.7.x because of a Docker bug. See https://github.com/docker/docker/issues/14354.

        Specified by:
        events in interface DockerClient
        Parameters:
        params - The parameters to apply to the events request
        Returns:
        An event stream
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • getLogStream

        private LogStream getLogStream​(java.lang.String method,
                                       javax.ws.rs.client.WebTarget resource,
                                       java.lang.String containerId)
                                throws DockerException,
                                       java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • getServiceLogStream

        private LogStream getServiceLogStream​(java.lang.String method,
                                              javax.ws.rs.client.WebTarget resource,
                                              java.lang.String serviceId)
                                       throws DockerException,
                                              java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • execCreate

        public ExecCreation execCreate​(java.lang.String containerId,
                                       java.lang.String[] cmd,
                                       DockerClient.ExecCreateParam... params)
                                throws DockerException,
                                       java.lang.InterruptedException
        Description copied from interface: DockerClient
        Sets up an exec instance in a running container id.
        Specified by:
        execCreate in interface DockerClient
        Parameters:
        containerId - The id of the container
        cmd - shell command
        params - Exec params
        Returns:
        ExecCreation
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • execStart

        public LogStream execStart​(java.lang.String execId,
                                   DockerClient.ExecStartParameter... params)
                            throws DockerException,
                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Starts a previously set up exec instance id. If detach is true, this API returns after starting the exec command. Otherwise, this API sets up an interactive session with the exec command.
        Specified by:
        execStart in interface DockerClient
        Parameters:
        execId - exec id
        params - Exec start params
        Returns:
        exec output
        Throws:
        ExecNotFoundException - if exec instance is not found (404)
        ExecStartConflictException - if container is paused (409)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectSwarm

        public Swarm inspectSwarm()
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect the swarm. Only available in Docker API >= 1.24.
        Specified by:
        inspectSwarm in interface DockerClient
        Returns:
        Info about a swarm
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • initSwarm

        public java.lang.String initSwarm​(SwarmInit swarmInit)
                                   throws DockerException,
                                          java.lang.InterruptedException
        Description copied from interface: DockerClient
        Initialize a new swarm. Only available in Docker API >= 1.24.
        Specified by:
        initSwarm in interface DockerClient
        Returns:
        Node ID
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • joinSwarm

        public void joinSwarm​(SwarmJoin swarmJoin)
                       throws DockerException,
                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        Join an existing swarm. Only available in Docker API >= 1.24.
        Specified by:
        joinSwarm in interface DockerClient
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • leaveSwarm

        public void leaveSwarm()
                        throws DockerException,
                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Leave a swarm. Only available in Docker API >= 1.24.
        Specified by:
        leaveSwarm in interface DockerClient
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • leaveSwarm

        public void leaveSwarm​(boolean force)
                        throws DockerException,
                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Leave a swarm forcefully. Only available in Docker API >= 1.24. Force leave swarm, even if this is the last manager or if leaving will break the cluster.
        Specified by:
        leaveSwarm in interface DockerClient
        Parameters:
        force - Whether to leave forcefully
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateSwarm

        public void updateSwarm​(java.lang.Long version,
                                boolean rotateWorkerToken,
                                boolean rotateManagerToken,
                                boolean rotateManagerUnlockKey,
                                SwarmSpec spec)
                         throws DockerException,
                                java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update a swarm. Only available in Docker API >= 1.24.
        Specified by:
        updateSwarm in interface DockerClient
        Parameters:
        version - The version number of the swarm object being updated. This is required to avoid conflicting writes.
        rotateWorkerToken - Set to true to rotate the worker join token.
        rotateManagerToken - Set to true to rotate the worker join token.
        rotateManagerUnlockKey - Set to true to rotate the manager unlock key.
        spec - SwarmSpec
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateSwarm

        public void updateSwarm​(java.lang.Long version,
                                boolean rotateWorkerToken,
                                boolean rotateManagerToken,
                                SwarmSpec spec)
                         throws DockerException,
                                java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update a swarm. Only available in Docker API >= 1.24.
        Specified by:
        updateSwarm in interface DockerClient
        Parameters:
        version - The version number of the swarm object being updated. This is required to avoid conflicting writes.
        rotateWorkerToken - Set to true to rotate the worker join token.
        rotateManagerToken - Set to true to rotate the worker join token.
        spec - SwarmSpec
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateSwarm

        public void updateSwarm​(java.lang.Long version,
                                boolean rotateWorkerToken,
                                SwarmSpec spec)
                         throws DockerException,
                                java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update a swarm. Only available in Docker API >= 1.24.
        Specified by:
        updateSwarm in interface DockerClient
        Parameters:
        version - The version number of the swarm object being updated. This is required to avoid conflicting writes.
        rotateWorkerToken - Set to true to rotate the worker join token.
        spec - SwarmSpec
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateSwarm

        public void updateSwarm​(java.lang.Long version,
                                SwarmSpec spec)
                         throws DockerException,
                                java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update a swarm. Only available in Docker API >= 1.24.
        Specified by:
        updateSwarm in interface DockerClient
        Parameters:
        version - The version number of the swarm object being updated. This is required to avoid conflicting writes.
        spec - SwarmSpec
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • unlockKey

        public UnlockKey unlockKey()
                            throws DockerException,
                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get an unlock key for unlocking a swarm. Only available in Docker API >= 1.25.
        Specified by:
        unlockKey in interface DockerClient
        Returns:
        UnlockKey
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • unlock

        public void unlock​(UnlockKey unlockKey)
                    throws DockerException,
                           java.lang.InterruptedException
        Description copied from interface: DockerClient
        Unlock a swarm. Only available in Docker API >= 1.25.
        Specified by:
        unlock in interface DockerClient
        Parameters:
        unlockKey - UnlockKey
        Throws:
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • createService

        public ServiceCreateResponse createService​(ServiceSpec spec)
                                            throws DockerException,
                                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Create a new service. Only available in Docker API >= 1.24.
        Specified by:
        createService in interface DockerClient
        Parameters:
        spec - the service spec
        Returns:
        Service creation result with service id.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • createService

        public ServiceCreateResponse createService​(ServiceSpec spec,
                                                   RegistryAuth config)
                                            throws DockerException,
                                                   java.lang.InterruptedException
        Description copied from interface: DockerClient
        Create a new service. Only available in Docker API >= 1.24.
        Specified by:
        createService in interface DockerClient
        Parameters:
        spec - the service spec
        config - the registry authentication configuration
        Returns:
        Service creation result with service id.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectService

        public Service inspectService​(java.lang.String serviceId)
                               throws DockerException,
                                      java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect an existing service. Only available in Docker API >= 1.24.
        Specified by:
        inspectService in interface DockerClient
        Parameters:
        serviceId - the id of the service to inspect
        Returns:
        Info about the service
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateService

        public void updateService​(java.lang.String serviceId,
                                  java.lang.Long version,
                                  ServiceSpec spec)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update an existing service. Only available in Docker API >= 1.24.
        Specified by:
        updateService in interface DockerClient
        Parameters:
        serviceId - the identifier of the service
        version - the version of the service
        spec - the new service spec
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • updateService

        public void updateService​(java.lang.String serviceId,
                                  java.lang.Long version,
                                  ServiceSpec spec,
                                  RegistryAuth config)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update an existing service. Only available in Docker API >= 1.24.
        Specified by:
        updateService in interface DockerClient
        Parameters:
        serviceId - the identifier of the service
        version - the version of the service
        spec - the new service spec
        config - the registry authentication configuration
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listServices

        public java.util.List<Service> listServices()
                                             throws DockerException,
                                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        List all services. Only available in Docker API >= 1.24.
        Specified by:
        listServices in interface DockerClient
        Returns:
        A list of services.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listServices

        public java.util.List<Service> listServices​(Service.Criteria criteria)
                                             throws DockerException,
                                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        List services that match the given criteria. Only available in Docker API >= 1.24.
        Specified by:
        listServices in interface DockerClient
        Parameters:
        criteria - Service listing and filtering options.
        Returns:
        A list of Services
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • removeService

        public void removeService​(java.lang.String serviceId)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove an existing service. Only available in Docker API >= 1.24.
        Specified by:
        removeService in interface DockerClient
        Parameters:
        serviceId - the id of the service to remove
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • serviceLogs

        public LogStream serviceLogs​(java.lang.String serviceId,
                                     DockerClient.LogsParam... params)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Get docker service logs.
        Specified by:
        serviceLogs in interface DockerClient
        Parameters:
        serviceId - The id of the service to get logs for.
        params - Params for controlling what streams to get and whether to tail or not.
        Returns:
        A log message stream.
        Throws:
        BadParamException - if one or more params were bad (400)
        ServiceNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectTask

        public Task inspectTask​(java.lang.String taskId)
                         throws DockerException,
                                java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect an existing task. Only available in Docker API >= 1.24.
        Specified by:
        inspectTask in interface DockerClient
        Parameters:
        taskId - the id of the task to inspect
        Returns:
        Info about the task
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listTasks

        public java.util.List<Task> listTasks()
                                       throws DockerException,
                                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        List all tasks. Only available in Docker API >= 1.24.
        Specified by:
        listTasks in interface DockerClient
        Returns:
        A list of tasks.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listTasks

        public java.util.List<Task> listTasks​(Task.Criteria criteria)
                                       throws DockerException,
                                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        List tasks that match the given criteria. Only available in Docker API >= 1.24.
        Specified by:
        listTasks in interface DockerClient
        Parameters:
        criteria - Task.Criteria
        Returns:
        A list of tasks.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listConfigs

        public java.util.List<Config> listConfigs()
                                           throws DockerException,
                                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        List swarm configs. Only available in Docker API >= 1.30.
        Specified by:
        listConfigs in interface DockerClient
        Returns:
        a list of configs
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - if the thread is interrupted
      • listConfigs

        public java.util.List<Config> listConfigs​(Config.Criteria criteria)
                                           throws DockerException,
                                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        List swarm configs. Only available in Docker API >= 1.30.
        Specified by:
        listConfigs in interface DockerClient
        Parameters:
        criteria - Config listing and filtering options
        Returns:
        a list of configs.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - if the thread is interrupted
      • inspectConfig

        public Config inspectConfig​(java.lang.String configId)
                             throws DockerException,
                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect a config. Only available in Docker API >= 1.30.
        Specified by:
        inspectConfig in interface DockerClient
        Parameters:
        configId - The id of the config.
        Returns:
        Config
        Throws:
        NotFoundException - config not found (404)
        DockerException - if node is not part of a swarm (503) or a server error occurred (500)
        java.lang.InterruptedException
      • deleteConfig

        public void deleteConfig​(java.lang.String configId)
                          throws DockerException,
                                 java.lang.InterruptedException
        Description copied from interface: DockerClient
        Delete a config. Only available in Docker API >= 1.30.
        Specified by:
        deleteConfig in interface DockerClient
        Parameters:
        configId - The id of the config.
        Throws:
        NotFoundException - config not found (404)
        DockerException - if node is not part of a swarm (503) or a server error occurred (500)
        java.lang.InterruptedException
      • updateConfig

        public void updateConfig​(java.lang.String configId,
                                 java.lang.Long version,
                                 ConfigSpec nodeSpec)
                          throws DockerException,
                                 java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update a swarm config. Only available in Docker API >= 1.30.
        Specified by:
        updateConfig in interface DockerClient
        Parameters:
        configId - The id of the config to update
        version - The version number of the config object being updated. This is required to avoid conflicting writes
        Throws:
        NodeNotFoundException - If the config doesn't exist (404)
        NonSwarmNodeException - If the config is not part of a swarm (503)
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listNodes

        public java.util.List<Node> listNodes()
                                       throws DockerException,
                                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        List swarm nodes. Only available in Docker API >= 1.24.
        Specified by:
        listNodes in interface DockerClient
        Returns:
        A list of nodes.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • listNodes

        public java.util.List<Node> listNodes​(Node.Criteria criteria)
                                       throws DockerException,
                                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        List swarm nodes that match the given criteria. Only available in Docker API >= 1.24.
        Specified by:
        listNodes in interface DockerClient
        Parameters:
        criteria - Node listing and filtering options.
        Returns:
        A list of nodes.
        Throws:
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectNode

        public NodeInfo inspectNode​(java.lang.String nodeId)
                             throws DockerException,
                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspects a swarm node. Only available in Docker API >= 1.24.
        Specified by:
        inspectNode in interface DockerClient
        Parameters:
        nodeId - The id of the swarm node to inspect
        Returns:
        info about the node
        Throws:
        NonSwarmNodeException - if the node is not part of a swarm (503)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - if the thread is interrupted
      • updateNode

        public void updateNode​(java.lang.String nodeId,
                               java.lang.Long version,
                               NodeSpec nodeSpec)
                        throws DockerException,
                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Update a swarm node. Only available in Docker API >= 1.24.
        Specified by:
        updateNode in interface DockerClient
        Parameters:
        nodeId - The id of the node to update
        version - The version number of the node object being updated. This is required to avoid conflicting writes
        Throws:
        NodeNotFoundException - If the node doesn't exist (404)
        NonSwarmNodeException - If the node is not part of a swarm (503)
        DockerException - If a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • deleteNode

        public void deleteNode​(java.lang.String nodeId)
                        throws DockerException,
                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove a node from the swarm.
        Specified by:
        deleteNode in interface DockerClient
        Parameters:
        nodeId - The id of the node to remove.
        Throws:
        DockerException
        java.lang.InterruptedException
      • deleteNode

        public void deleteNode​(java.lang.String nodeId,
                               boolean force)
                        throws DockerException,
                               java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove a node from the swarm.
        Specified by:
        deleteNode in interface DockerClient
        Parameters:
        nodeId - The id of the node to remove.
        force - Forcefully remove the node.
        Throws:
        DockerException
        java.lang.InterruptedException
      • execResizeTty

        public void execResizeTty​(java.lang.String execId,
                                  java.lang.Integer height,
                                  java.lang.Integer width)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Resizes the tty session used by an exec command. This API is valid only if tty was specified as part of creating and starting the exec command.
        Specified by:
        execResizeTty in interface DockerClient
        Parameters:
        execId - exec id
        height - height of tty session
        width - width of tty session
        Throws:
        BadParamException - if both height and width are null or zero
        ExecNotFoundException - if exec instance is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • execInspect

        public ExecState execInspect​(java.lang.String execId)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspects a running or previously run exec instance id.
        Specified by:
        execInspect in interface DockerClient
        Parameters:
        execId - exec id
        Returns:
        state of this exec instance.
        Throws:
        ExecNotFoundException - if exec instance is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • stats

        public ContainerStats stats​(java.lang.String containerId)
                             throws DockerException,
                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Retrieves one-time stats (stream=0) for the container with the specified id.
        Specified by:
        stats in interface DockerClient
        Parameters:
        containerId - The id of the container to retrieve stats for.
        Returns:
        The container stats
        Throws:
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • resizeTty

        public void resizeTty​(java.lang.String containerId,
                              java.lang.Integer height,
                              java.lang.Integer width)
                       throws DockerException,
                              java.lang.InterruptedException
        Description copied from interface: DockerClient
        Resize container TTY This API is valid only if tty was specified as part of creating the container.
        Specified by:
        resizeTty in interface DockerClient
        Parameters:
        containerId - The id of the container whose TTY will be resized.
        height - New height of TTY
        width - New width of TTY
        Throws:
        BadParamException - if both height and width are null or zero
        ContainerNotFoundException - if container is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectNetwork

        public Network inspectNetwork​(java.lang.String networkId)
                               throws DockerException,
                                      java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect a specific network.
        Specified by:
        inspectNetwork in interface DockerClient
        Parameters:
        networkId - The id of the network
        Returns:
        network information
        Throws:
        NetworkNotFoundException - if network is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • removeNetwork

        public void removeNetwork​(java.lang.String networkId)
                           throws DockerException,
                                  java.lang.InterruptedException
        Description copied from interface: DockerClient
        Remove a docker network.
        Specified by:
        removeNetwork in interface DockerClient
        Parameters:
        networkId - The id of the network to remove.
        Throws:
        NetworkNotFoundException - if network is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • connectToNetwork

        public void connectToNetwork​(java.lang.String containerId,
                                     java.lang.String networkId)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Connects a docker container to a network.
        Specified by:
        connectToNetwork in interface DockerClient
        Parameters:
        containerId - The id of the container to connect.
        networkId - The id of the network to connect.
        Throws:
        NotFoundException - if either container or network is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • connectToNetwork

        public void connectToNetwork​(java.lang.String networkId,
                                     NetworkConnection networkConnection)
                              throws DockerException,
                                     java.lang.InterruptedException
        Description copied from interface: DockerClient
        Connects a docker container to a network, with extended configuration. This is useful when you want to set specific details (aliases, gateway, etc...) for your container inside the network.
        Specified by:
        connectToNetwork in interface DockerClient
        Parameters:
        networkId - The id of the network to connect.
        networkConnection - The target connection parameters.
        Throws:
        NotFoundException - if either container or network is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - if the thread is interrupted
      • disconnectFromNetwork

        public void disconnectFromNetwork​(java.lang.String containerId,
                                          java.lang.String networkId)
                                   throws DockerException,
                                          java.lang.InterruptedException
        Description copied from interface: DockerClient
        Disconnects a docker container to a network.
        Specified by:
        disconnectFromNetwork in interface DockerClient
        Parameters:
        containerId - The id of the container to disconnect.
        networkId - The id of the network to disconnect.
        Throws:
        NotFoundException - if either container or network is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • disconnectFromNetwork

        public void disconnectFromNetwork​(java.lang.String containerId,
                                          java.lang.String networkId,
                                          boolean force)
                                   throws DockerException,
                                          java.lang.InterruptedException
        Description copied from interface: DockerClient
        Disconnects a docker container to a network.
        Specified by:
        disconnectFromNetwork in interface DockerClient
        Parameters:
        containerId - The id of the container to disconnect.
        networkId - The id of the network to disconnect.
        force - Force the container to disconnect from the network.
        Throws:
        NotFoundException - if either container or network is not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException - If the thread is interrupted
      • inspectSecret

        public Secret inspectSecret​(java.lang.String secretId)
                             throws DockerException,
                                    java.lang.InterruptedException
        Description copied from interface: DockerClient
        Inspect a secret.
        Specified by:
        inspectSecret in interface DockerClient
        Parameters:
        secretId - The id of the secret.
        Returns:
        Secret
        Throws:
        NotFoundException - secret not found (404)
        DockerException - if node is not part of a swarm (406) or a server error occurred (500)
        java.lang.InterruptedException
      • deleteSecret

        public void deleteSecret​(java.lang.String secretId)
                          throws DockerException,
                                 java.lang.InterruptedException
        Description copied from interface: DockerClient
        Delete a secret.
        Specified by:
        deleteSecret in interface DockerClient
        Parameters:
        secretId - The id of the secret.
        Throws:
        NotFoundException - not found (404)
        DockerException - if a server error occurred (500)
        java.lang.InterruptedException
      • resource

        private javax.ws.rs.client.WebTarget resource()
      • noTimeoutResource

        private javax.ws.rs.client.WebTarget noTimeoutResource()
      • request

        private <T> T request​(java.lang.String method,
                              javax.ws.rs.core.GenericType<T> type,
                              javax.ws.rs.client.WebTarget resource,
                              javax.ws.rs.client.Invocation.Builder request)
                       throws DockerException,
                              java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • request

        private <T> T request​(java.lang.String method,
                              java.lang.Class<T> clazz,
                              javax.ws.rs.client.WebTarget resource,
                              javax.ws.rs.client.Invocation.Builder request)
                       throws DockerException,
                              java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • request

        private <T> T request​(java.lang.String method,
                              java.lang.Class<T> clazz,
                              javax.ws.rs.client.WebTarget resource,
                              javax.ws.rs.client.Invocation.Builder request,
                              javax.ws.rs.client.Entity<?> entity)
                       throws DockerException,
                              java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • request

        private void request​(java.lang.String method,
                             javax.ws.rs.client.WebTarget resource,
                             javax.ws.rs.client.Invocation.Builder request)
                      throws DockerException,
                             java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • tailResponse

        private void tailResponse​(java.lang.String method,
                                  javax.ws.rs.core.Response response,
                                  ProgressHandler handler,
                                  javax.ws.rs.client.WebTarget resource)
                           throws DockerException,
                                  java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • requestAndTail

        private void requestAndTail​(java.lang.String method,
                                    ProgressHandler handler,
                                    javax.ws.rs.client.WebTarget resource,
                                    javax.ws.rs.client.Invocation.Builder request,
                                    javax.ws.rs.client.Entity<?> entity)
                             throws DockerException,
                                    java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • requestAndTail

        private void requestAndTail​(java.lang.String method,
                                    ProgressHandler handler,
                                    javax.ws.rs.client.WebTarget resource,
                                    javax.ws.rs.client.Invocation.Builder request)
                             throws DockerException,
                                    java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • headers

        private javax.ws.rs.client.Invocation.Builder headers​(javax.ws.rs.client.Invocation.Builder request)
      • propagate

        private java.lang.RuntimeException propagate​(java.lang.String method,
                                                     javax.ws.rs.client.WebTarget resource,
                                                     java.lang.Exception ex)
                                              throws DockerException,
                                                     java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException
      • message

        private java.lang.String message​(javax.ws.rs.core.Response response)
      • assertApiVersionIsAbove

        private void assertApiVersionIsAbove​(java.lang.String minimumVersion)
                                      throws DockerException,
                                             java.lang.InterruptedException
        Throws:
        DockerException
        java.lang.InterruptedException