Container name, container directory name, and image name are chained together and that makes the setup less flexible for running multiple instances of the same image:
CONTAINER_NAME=$(basename ${__dir})
docker run --rm -v ${DIRECTORY_HOST_SHARED}:${DIRECTORY_CONTAINER_SHARED} ${DOCKERHUB_ID}/${CONTAINER_NAME}:${CONTAINER_VERSION} ${DIRECTORY_CONTAINER}/${CONTAINER_SCRIPT} ${CONTAINER_NAME}
Container name, container directory name, and image name are chained together and that makes the setup less flexible for running multiple instances of the same image: