Class DockerRunCommand


  • public class DockerRunCommand
    extends DockerCommand
    Encapsulates the docker run command and its command line arguments.
    • Constructor Detail

      • DockerRunCommand

        public DockerRunCommand​(String containerName,
                                String userInfo,
                                String image)
        The Construction function.
        Parameters:
        containerName - the container name
        userInfo - the info of the user, e.g. "uid:gid"
        image - the container image
    • Method Detail

      • removeContainerOnExit

        public DockerRunCommand removeContainerOnExit()
        Add --rm option.
        Returns:
        the self
      • detachOnRun

        public DockerRunCommand detachOnRun()
        Add -d option.
        Returns:
        the self
      • setContainerWorkDir

        public DockerRunCommand setContainerWorkDir​(String workdir)
        Set --workdir option.
        Parameters:
        workdir - the working directory
        Returns:
        the self
      • setNetworkType

        public DockerRunCommand setNetworkType​(String type)
        Set --net option.
        Parameters:
        type - the network type
        Returns:
        the self
      • addReadWriteMountLocation

        public DockerRunCommand addReadWriteMountLocation​(String sourcePath,
                                                          String destinationPath,
                                                          boolean createSource)
                                                   throws IOException
        Add bind mount locations.
        Parameters:
        sourcePath - the source path
        destinationPath - the destination path
        createSource - if createSource is false and the source path doesn't exist, do nothing
        Returns:
        the self
        Throws:
        IOException
      • addAllReadWriteMountLocations

        public DockerRunCommand addAllReadWriteMountLocations​(List<String> paths,
                                                              boolean createSource)
                                                       throws IOException
        Add all the rw bind mount locations.
        Parameters:
        paths - the locations
        createSource - if createSource is false and the source path doesn't exist, do nothing
        Returns:
        the self
        Throws:
        IOException
      • addReadOnlyMountLocation

        public DockerRunCommand addReadOnlyMountLocation​(String sourcePath,
                                                         String destinationPath,
                                                         boolean createSource)
                                                  throws IOException
        Add readonly bind mount location.
        Parameters:
        sourcePath - the source path
        destinationPath - the destination path
        createSource - if createSource is false and the source path doesn't exist, do nothing
        Returns:
        the self
        Throws:
        IOException
      • addReadOnlyMountLocation

        public DockerRunCommand addReadOnlyMountLocation​(String sourcePath,
                                                         String destinationPath)
                                                  throws IOException
        Add readonly bind mout location.
        Parameters:
        sourcePath - the source path
        destinationPath - the destination path
        Returns:
        the self
        Throws:
        IOException
      • addAllReadOnlyMountLocations

        public DockerRunCommand addAllReadOnlyMountLocations​(List<String> paths,
                                                             boolean createSource)
                                                      throws IOException
        Add all readonly locations.
        Parameters:
        paths - the locations
        createSource - if createSource is false and the source path doesn't exist, do nothing
        Returns:
        the self
        Throws:
        IOException
      • setCGroupParent

        public DockerRunCommand setCGroupParent​(String parentPath)
        Set --cgroup-parent option.
        Parameters:
        parentPath - the cgroup parent path
        Returns:
        the self
      • setPrivileged

        public DockerRunCommand setPrivileged()
        Set --privileged option to run a privileged container. Use with extreme care.
        Returns:
        the self.
      • setCapabilities

        public DockerRunCommand setCapabilities​(Set<String> capabilities)
        Set capabilities of the container.
        Parameters:
        capabilities - the capabilities to be added
        Returns:
        the self
      • addDevice

        public DockerRunCommand addDevice​(String sourceDevice,
                                          String destinationDevice)
        Set --device option.
        Parameters:
        sourceDevice - the source device
        destinationDevice - the destination device
        Returns:
        the self
      • enableDetach

        public DockerRunCommand enableDetach()
        Enable detach.
        Returns:
        the self
      • disableDetach

        public DockerRunCommand disableDetach()
        Disable detach.
        Returns:
        the self
      • groupAdd

        public DockerRunCommand groupAdd​(String[] groups)
        Set --group-add option.
        Parameters:
        groups - the groups to be added
        Returns:
        the self
      • setOverrideCommandWithArgs

        public DockerRunCommand setOverrideCommandWithArgs​(List<String> overrideCommandWithArgs)
        Set extra commands and args. It can override the existing commands.
        Parameters:
        overrideCommandWithArgs - the extra commands and args
        Returns:
        the self
      • setReadonly

        public DockerRunCommand setReadonly()
        Add --read-only option.
        Returns:
        the self
      • setSeccompProfile

        public DockerRunCommand setSeccompProfile​(String jsonPath)
        Set --security-opt option.
        Parameters:
        jsonPath - the path to the json file
        Returns:
        the self
      • setNoNewPrivileges

        public DockerRunCommand setNoNewPrivileges()
        Set no-new-privileges option.
        Returns:
        the self
      • setCpuShares

        public DockerRunCommand setCpuShares​(int cpuShares)
        Set cpuShares.
        Parameters:
        cpuShares - the cpu shares
        Returns:
        the self
      • setCpus

        public DockerRunCommand setCpus​(double cpus)
        Set the number of cpus to use.
        Parameters:
        cpus - the number of cpus
        Returns:
        the self
      • setMemoryMb

        public DockerRunCommand setMemoryMb​(int memoryMb)
        Set the number of memory in MB to use.
        Parameters:
        memoryMb - the number of memory in MB
        Returns:
        the self
      • setCidFile

        public DockerRunCommand setCidFile​(String cidFile)
        Set the output container id file location.
        Parameters:
        cidFile - the container id file
        Returns:
        the self