docker run Options <image name>
The following table lists some docker run options that you can use with the docker run command when you run an image that contains published stubs. For more information about all of the general docker run options, see the Docker Documentation.
| Options | Description |
|---|---|
| -p <external_host_port>:<container_host_port> | Explicitly maps a port on the host to an exposed container port. For more information about mapping ports, see the Docker Run Reference. |
| -P | Maps the exposed container ports to the host. Each exposed port is mapped to an ephemeral port on the host. When the container is running, you can see how the ports were mapped by using the docker port command. For more information about mapping ports, see the Docker Run Reference. |
| -d | Runs the container in detached mode |
| -h <value> | Overrides or sets the container host name to <value>. |
| -e RATIONAL_LICENSE_FILE=<value> | Required if you run a container that is published
from the full edition of Rational® Integration Tester to
obtain an appropriate license. <value> is the host and port of
the Rational Common Licensing server in the format port@fully_qualified_host,
if the server is using the default port of 27000 the port can be excluded.
The license server must be both accessible and have available licenses
when the container starts. Note: Licensing is limited to Agent
mode licensing, which is also known as simultaneous session licensing.
For more information, see Agent mode licensing.
|
| -e RULE_HOST=<value> | Optional. If you are using Rational Test Control Panel and HTTP proxy the host name that is specified as <value> is used as the host name in routing rules that are sent to the proxy. This causes the proxy to send requests to one or more stubs by using the specified host name. |
| -e RULE_PORTS=<value> | Optional. If you are using Rational Test Control Panel and
HTTP proxy this environment variable allows the values of ports that
are used within the container to be correctly reflected in routing
rules, if the container port is mapped to a different port on the
host. <value> must be a comma-separated list of port mappings of
the following form:
Note: RULE_HOST and RULE_PORTS assume that you know this
information when the container is run. If for example you use the
-P option you might not know the port mappings as the automatic mapping
by Docker uses free ephemeral ports. Instead of using RULE_HOST and
RULE_PORTS, you can use the RULE_ENDPOINT_FILE environment variable.
|
| -e RULE_ENDPOINT_FILE=<value> | Optional. <value> is the name of a file within
the container that is processed to get the host and port mapping information.
While the specified file does not exist, the run time waits and does
not start the stubs. This allows for host and port information to
be provided after calling docker run. The lines in
the file must be one or more of:
You can pass a rule file into a running container by using docker cp. |
| -e RULE_SERVER=<value> | Optional. <value> must be the URL for Rational Test Control Panel. This overrides the value that is specified in the Rational Integration Tester project file that is contained in the Docker image. |
| -e RULE_SECURITY_TOKEN=<value> | Optional. <value> must be a valid Rational Test Control Panel security token. The value must be specified if domain level security is enabled in Rational Test Control Panel. |
| -e RULE_DOMAIN=<value> | Optional. <value> must be the name of a valid Rational Test Control Panel domain. This overrides the value that is specified in the Rational Integration Tester project file that is contained in the Docker image. |
| -e RUNTESTS_LOG_LEVEL=<value> | Optional. <value> can be DEBUG, INFO, WARNING, or ERROR. If set, the Rational Integration Tester related classes log at the specified level. If not specified, WARNING is used. |
This is an example for a stub that is listening (exposed) on port 8081 in the container and explicitly mapped to port 1234 on the host mydockerhost.local:
docker run -d -p 1234:8081 -e RULE_HOST=mydockerhost.local -e RULE_PORTS=1234:8081 -e RATIONAL_LICENSE_FILE=@licenseserver.local stubimage
This is an example for a stub that is listening (exposed) on port 8082 in the container and automatically mapped to an ephemeral port on the host mydockerhost.local:
docker run -d -P -e RULE_ENDPOINT_FILE=/endpoint.txt -e RATIONAL_LICENSE_FILE=@licenseserver.local stubimage
Once
executed, a file that is named endpoint.txt can be
created on the Docker host at /tmp/endpoint.txt.
Assuming port 8082 was mapped to 37001 on the host (the docker
port command can be used to see the port mappings), the file
can contain:hostname=mydockerhost.local
37001:8082
which can be copied into the container by using
this Docker command:docker cp /tmp/endpoint.txt <container_id>:/endpoint.txt
where <container_id> is
identified for the running container.