org.apache.storm.container.docker

## Class DockerRunCommand

- java.lang.Object
- - org.apache.storm.container.docker.DockerCommand
  - - org.apache.storm.container.docker.DockerRunCommand

-     public class DockerRunCommand
      extends DockerCommand

  Encapsulates the docker run command and its command line arguments.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DockerRunCommand(String containerName, String userInfo, String image)` The Construction function.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `DockerRunCommand` | `addAllReadOnlyMountLocations(List<String> paths)` Add all readonly locations.
    `DockerRunCommand` | `addAllReadOnlyMountLocations(List<String> paths, boolean createSource)` Add all readonly locations.
    `DockerRunCommand` | `addAllReadWriteMountLocations(List<String> paths)` Add all the rw bind mount locations.
    `DockerRunCommand` | `addAllReadWriteMountLocations(List<String> paths, boolean createSource)` Add all the rw bind mount locations.
    `DockerRunCommand` | `addCpuSetBindings(List<String> cores, String memoryNode)`
    `DockerRunCommand` | `addDevice(String sourceDevice, String destinationDevice)` Set –device option.
    `DockerRunCommand` | `addReadOnlyMountLocation(String sourcePath, String destinationPath)` Add readonly bind mout location.
    `DockerRunCommand` | `addReadOnlyMountLocation(String sourcePath, String destinationPath, boolean createSource)` Add readonly bind mount location.
    `DockerRunCommand` | `addReadWriteMountLocation(String sourcePath, String destinationPath)`
    `DockerRunCommand` | `addReadWriteMountLocation(String sourcePath, String destinationPath, boolean createSource)` Add bind mount locations.
    `DockerRunCommand` | `detachOnRun()` Add -d option.
    `DockerRunCommand` | `disableDetach()` Disable detach.
    `DockerRunCommand` | `enableDetach()` Enable detach.
    `String` | `getCommandWithArguments()` Get the full command.
    `DockerRunCommand` | `groupAdd(String[] groups)` Set –group-add option.
    `DockerRunCommand` | `removeContainerOnExit()` Add –rm option.
    `DockerRunCommand` | `setCapabilities(Set<String> capabilities)` Set capabilities of the container.
    `DockerRunCommand` | `setCGroupParent(String parentPath)` Set –cgroup-parent option.
    `DockerRunCommand` | `setCidFile(String cidFile)` Set the output container id file location.
    `DockerRunCommand` | `setContainerWorkDir(String workdir)` Set –workdir option.
    `DockerRunCommand` | `setCpus(double cpus)` Set the number of cpus to use.
    `DockerRunCommand` | `setCpuShares(int cpuShares)` Set cpuShares.
    `DockerRunCommand` | `setMemoryMb(int memoryMb)` Set the number of memory in MB to use.
    `DockerRunCommand` | `setNetworkType(String type)` Set –net option.
    `DockerRunCommand` | `setNoNewPrivileges()` Set no-new-privileges option.
    `DockerRunCommand` | `setOverrideCommandWithArgs(List<String> overrideCommandWithArgs)` Set extra commands and args.
    `DockerRunCommand` | `setPrivileged()` Set –privileged option to run a privileged container.
    `DockerRunCommand` | `setReadonly()` Add –read-only option.
    `DockerRunCommand` | `setSeccompProfile(String jsonPath)` Set –security-opt option.

    - ### Methods inherited from class org.apache.storm.container.docker.DockerCommand

      `addCommandArguments, getCommandOption`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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`

    - #### addReadWriteMountLocation

          public DockerRunCommand addReadWriteMountLocation(String sourcePath,
                                                            String destinationPath)
                                                     throws IOException

      Throws:
        `IOException`

    - #### addAllReadWriteMountLocations

          public DockerRunCommand addAllReadWriteMountLocations(List<String> paths)
                                                         throws IOException

      Add all the rw bind mount locations.

      Parameters:
        `paths` - the locations
      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)
                                                        throws IOException

      Add all readonly locations.

      Parameters:
        `paths` - the locations
      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`

    - #### addCpuSetBindings

          public DockerRunCommand addCpuSetBindings(List<String> cores,
                                                    String memoryNode)

    - #### 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

    - #### getCommandWithArguments

          public String getCommandWithArguments()

      Get the full command.

      Overrides:
        `getCommandWithArguments` in class `DockerCommand`
      Returns:
        the full command

Copyright © 2021 The Apache Software Foundation. All rights reserved.