Launching TDV Containers (Single Node) - Using Docker Run
This section will explain how to start a TDV Docker container (Single Node). If you need to review TDV container sizing guidelines refer Sizing Guidelines for TDV
General examples for launching a single node TDV Docker container
Below is a generic example for launching a single node docker container. Note that you must execute the “docker run” command for all 3 TDV containers (repo, cache and server).
$ docker volume create --name tdv8.5.0clustercache-vol 2>&1 > /dev/null
$ docker volume create --name tdv8.5.0clusterrepo-vol 2>&1 > /dev/null
$ docker volume create --name tdv8.5.0cluster-vol 2>&1 > /dev/null
$ docker network create --internal tdv-bridge-internal
$ docker network create tdv-bridge
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge -p 9404:9404 -v tdv0.0clustercache-vol:/var/lib/postgresql/data --env POSTGRES_USER=<user> --env POSTGRES_PASSWORD=<tdv admin password> --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS=-E UTF-8 --env POSTGRES_HOST_AUTH_METHOD=password --env PGDATA=/var/lib/postgresql/data/tdv --name tdv0.0clustercache tibco/tdvcache:8.5.0 postgres
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge -p 9408:9408 -v tdv0.0clusterrepo-vol:/var/lib/postgresql/data --env POSTGRES_USER=<user> --env POSTGRES_PASSWORD=<tdv admin password> --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS=-E UTF-8 --env POSTGRES_HOST_AUTH_METHOD=password --env PGDATA=/var/lib/postgresql/data/tdv --name tdv0.0clusterrepo tibco/tdvrepo:8.5.0 postgres
$ docker run -itd --cpus 2.0 --restart unless-stopped --memory 8g --network tdv-bridge -p 9400-9403:9400-9403 -p 9405:9405 -p 9409:9409 -p 9300-9306:9300-9306 -p 9407:9407 -v tdv0.0cluster-vol:/opt/TIBCO --name tdv0.0cluster --env TDV_ADMIN_PASSWORD=<tdv admin password> --env TDV_MAX_MEMORY=7000 --env TDV_CACHE_HOSTNAME=tdv0.0clustercache --env TDV_REPO_HOSTNAME=tdv0.0clusterrepo tibco/tdv:0.0 tdv.server
To configure node 1 as timekeeper node on "tdv0.0cluster:9400" with cluster name "tdv0.0cluster”:
$ docker exec -it tdv8.5.0cluster /bin/bash -c $TDV_INSTALL_DIR/bin/cluster_util.sh -server tdv8.5.0cluster -port 9400 -user <user> -password <password> -create -clusterName tdv8.5.0cluster
Note: When launching a container, you can either give a password or use a password file that has the password stored in it. Refer to the section TDV Admin Password for ways to specify the Admin Password.
References:
Refer the table below for a description of the different options used in the above docker run command.
|
Option |
Docker Help Reference |
|
--restart |
Used to configure the restart policy for a container. Refer https://docs.docker.com/config/containers/start-containers-automatically/ |
| -t |
Allocate a pseudo-tty - https://docs.docker.com/engine/reference/run/ |
|
-i |
Keep STDIN open even if not attached - https://docs.docker.com/engine/reference/run/ |
|
-d |
Detach and run the container in background and print container ID - https://docs.docker.com/engine/reference/run/#detached--d |
|
-v |
(TDV Required) The tdv container requires a persistent storage area when running as a Docker container. See Sizing Guidelines for TDV for size recommendations. https://docs.docker.com/storage/bind-mounts/ Usage: -v <path to the file on the host machine>:<path where the file is mounted in the container>:<optional parameters> Example: -v $CONTAINER_CACHE_VOLUME:$TDV_DATABASE_DIR Note: mount point must have a valid volume existing before starting the TDV Container. |
|
(TDV Recommended) The tdv container works best with 2 CPUs/cores in general. See Sizing Guidelines for TDV for value recommendations. https://docs.docker.com/config/containers/resource_constraints/ |
|
|
-m |
(TDV Required) The tdv container requires a mininum of 8GB of memory. Higher tdv workloads require more. See Sizing Guidelines for TDV for value recommendations. https://docs.docker.com/config/containers/resource_constraints/ |
|
<tdv-container-name> |
Container name for your TDV Docker container. Recommendation is to have tdv in the name. Examples: tdv, tdv-1, tdv-2, tdv-dev, tdv-prod, etc https://docs.docker.com/config/containers/resource_constraints/ |
|
<repo-name> |
Repository name for your TDV Docker image. https://docs.docker.com/config/containers/resource_constraints/ |
|
<image-name> |
Recommendation is to use tdv. You can change this to any name. https://docs.docker.com/config/containers/resource_constraints/ |
|
<image-tag> |
Recommendation is to use the TDV version for this. Example: 8.4 https://docs.docker.com/config/containers/resource_constraints/ |
Linux
This section explains how to start a TDV Docker container on a Docker environment hosted on the Linux platform. The bridge, host and user specified bridge network options in Docker should work for a TDV Container on this platform.
TDV Docker container example
Resource Configuration: small (poc/demo) : 2 CPUs/cores, 8 GB memory, external container volume tdv-vol with 8GB persistent readable/writable storage.
TDV configuration: base port (9400), admin password (mandatory), server memory (default). Refer to the docker container files (Dockerfile.tdv, Dockerfile.tdv.repo and Dockerfile.tdv.cache) for TDV Docker image default values.
$ docker volume rm -f tdvcache8.6.1-vol
$ docker volume create --name "tdvcache8.6.1-vol"
$ docker volume rm -f tdvrepo8.6.1-vol
$ docker volume create --name "tdvrepo8.6.1-vol"
$ docker volume rm -f tdv8.6.1-vol
$ docker volume create --name "tdv8.6.1-vol"
$ docker network create --internal tdv-bridge-internal
$ docker network create tdv-bridge
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge-internal -p 9404:9404 -v tdvcache8.6.1-vol:/var/lib/postgresql/data --env POSTGRES_USER=root --env POSTGRES_PASSWORD=admin1 --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS="-E UTF-8" --env POSTGRES_HOST_AUTH_METHOD="password" --env PGDATA="/var/lib/postgresql/data/tdv" --name tdvcache8.6.1 tibco/tdvcache:8.6.1 postgres
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge-internal -p 9408:9408 -v tdvrepo8.6.1-vol:/var/lib/postgresql/data --env POSTGRES_USER=root --env POSTGRES_PASSWORD=admin1 --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS="-E UTF-8" --env POSTGRES_HOST_AUTH_METHOD="password" --env PGDATA="/var/lib/postgresql/data/tdv" --name tdvrepo8.6.1 tibco/tdvrepo:8.6.1 postgres
$ docker run -itd --cpus 2.0 --restart unless-stopped --memory 8g --network tdv-bridge-internal -p 9400-9403:9400-9403 -p 9405:9405 -p 9409:9409 -p 9300-9306:9300-9306 -v tdv8.6.1-vol:/opt/TIBCO --name tdv8.6.1 --env TDV_ADMIN_PASSWORD=admin1 --env TDV_MAX_MEMORY=7000 --env TDV_CACHE_HOSTNAME=tdvcache8.6.1 --env TDV_REPO_HOSTNAME=tdvrepo8.6.1 tibco/tdv:8.6.1 tdv.server
$ docker network connect tdv-bridge tdv8.6.1
MacOS
This section explains how to start a TDV Docker container on a Docker environment hosted on the MacOS platform. The bridge and user specified bridge network options in Docker should work for a TDV Container on this platform.
TDV Docker container example
Resource configuration: small (poc/demo): 2 CPUs/cores, 8 GB memory, external container volume tdv-vol with 8GB persistent readable/writable storage.
MacOS specific configuration: -p <host-port>:<container-port> for all DV ports exposed and --hostname=localhost
TDV configuration: base port (9400), admin password (mandatory), server memory (default). Refer to the docker container files (Dockerfile.tdv, Dockerfile.tdv.repo and Dockerfile.tdv.cache) for TDV Docker image default values.
$ docker volume rm -f tdvcache8.6.1-vol
$ docker volume create --name "tdvcache8.6.1-vol"
$ docker volume rm -f tdvrepo8.6.1-vol
$ docker volume create --name "tdvrepo8.6.1-vol"
$ docker volume rm -f tdv8.6.1-vol
$ docker volume create --name "tdv8.6.1-vol"
$ docker network create --internal tdv-bridge-internal
$ docker network create tdv-bridge
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge-internal -p 9404:9404 —hostname=localhost -v tdvcache8.6.1-vol:/var/lib/postgresql/data --env POSTGRES_USER=root --env POSTGRES_PASSWORD=admin1 --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS="-E UTF-8" --env POSTGRES_HOST_AUTH_METHOD="password" --env PGDATA="/var/lib/postgresql/data/tdv" --name tdvcache8.6.1 tibco/tdvcache:8.6.1 postgres
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge-internal -p 9408:9408 —hostname=localhost -v tdvrepo8.6.1-vol:/var/lib/postgresql/data --env POSTGRES_USER=root --env POSTGRES_PASSWORD=admin1 --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS="-E UTF-8" --env POSTGRES_HOST_AUTH_METHOD="password" --env PGDATA="/var/lib/postgresql/data/tdv" --name tdvrepo8.6.1 tibco/tdvrepo:8.6.1 postgres
$ docker run -itd --cpus 2.0 --restart unless-stopped --memory 8g --network tdv-bridge-internal -p 9400-9403:9400-9403 -p 9405:9405 -p 9409:9409 -p 9300-9306:9300-9306 —hostname=localhost -v tdv8.6.1-vol:/opt/TIBCO --name tdv8.6.1 --env TDV_ADMIN_PASSWORD=admin1 --env TDV_MAX_MEMORY=7000 --env TDV_CACHE_HOSTNAME=tdvcache8.6.1 --env TDV_REPO_HOSTNAME=tdvrepo8.6.1 tibco/tdv:8.6.1 tdv.server
$ docker network connect tdv-bridge tdv8.6.1
References:
For Docker Desktop for Mac, refer https://docs.docker.com/docker-for-mac/networking/
For larger TDV size configurations refer to Sizing Guidelines for TDV.
Note:If you have issues connecting to your TDV Docker container (specifically accessing TDV via localhost and TDV port), then you may need to add "--hostname=<ip-or-hostname>" in addition to the other docker run options. The --hostname parameter sets the IP address or Hostname that the server listens to for client connections. This command may take a few seconds to execute.
Windows
This section explains how to start a TDV Docker container on a Docker environment hosted on the Windows platform. The bridge and user specified bridge network options in Docker should work for a TDV Container on this platform.
TDV Docker container example
Resource configuration: small (poc/demo): 2 CPUs/cores, 8 GB memory, external container volume tdv-vol with 8 GB persistent readable/writable storage.
Windows specific configuration: -p <host-port>:<container-port> for all DV ports exposed and --hostname=localhost or --hostname=<ip-or-hostname>
TDV configuration: base port (9400), admin password (mandatory), server memory (default). Refer to the docker container files (Dockerfile.tdv, Dockerfile.tdv.repo and Dockerfile.tdv.cache) for TDV Docker image default values.
$ docker volume rm -f tdvcache8.6.1-vol
$ docker volume create --name "tdvcache8.6.1-vol"
$ docker volume rm -f tdvrepo8.6.1-vol
$ docker volume create --name "tdvrepo8.6.1-vol"
$ docker volume rm -f tdv8.6.1-vol
$ docker volume create --name "tdv8.6.1-vol"
$ docker network create --internal tdv-bridge-internal
$ docker network create tdv-bridge
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge-internal -p 9404:9404 -v tdvcache8.6.1-vol:/var/lib/postgresql/data --env POSTGRES_USER=root --env POSTGRES_PASSWORD=admin1 --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS="-E UTF-8" --env POSTGRES_HOST_AUTH_METHOD="password" --env PGDATA="/var/lib/postgresql/data/tdv" --name tdvcache8.6.1 tibco/tdvcache:8.6.1 postgres
$ docker run -itd --cpus 1.0 --restart unless-stopped --memory 2g --network tdv-bridge-internal -p 9408:9408 -v tdvrepo8.6.1-vol:/var/lib/postgresql/data --env POSTGRES_USER=root --env POSTGRES_PASSWORD=admin1 --env POSTGRES_DB=postgres --env POSTGRES_INITDB_ARGS="-E UTF-8" --env POSTGRES_HOST_AUTH_METHOD="password" --env PGDATA="/var/lib/postgresql/data/tdv" --name tdvrepo8.6.1 tibco/tdvrepo:8.6.1 postgres
$ docker run -itd --cpus 2.0 --restart unless-stopped --memory 8g --network tdv-bridge-internal -p 9400-9403:9400-9403 -p 9405:9405 -p 9409:9409 -p 9300-9306:9300-9306 -v tdv8.6.1-vol:/opt/TIBCO --name tdv8.6.1 --env TDV_ADMIN_PASSWORD=admin1 --env TDV_MAX_MEMORY=7000 --env TDV_CACHE_HOSTNAME=tdvcache8.6.1 --env TDV_REPO_HOSTNAME=tdvrepo8.6.1 tibco/tdv:8.6.1 tdv.server
$ docker network connect tdv-bridge tdv8.6.1
References:
For Docker Desktop for Windows, refer https://docs.docker.com/docker-for-windows/networking/
For larger TDV size configurations refer Sizing Guidelines for TDV
Note:
The TDV Docker image uses a Linux base OS. This means if you are running Docker on Windows then you need to make sure Docker is set to use Linux containers. For more details, see https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers.
If you have issues connecting to your TDV Docker container (specifically accessing TDV via localhost and TDV port), then you may need to add "--hostname=<ip-or-hostname>" in addition to the other docker run options. The --hostname parameter sets the IP address or Hostname that the server listens to for client connections. This command may take a few seconds to execute.