4 # Get a login for a docker container.
14 dssh: log in to a docker node
16 usage: dssh: [options]
19 -h: show this help message.
20 -i [ID]: ssh into a docker node with this container ID
21 -n [name]: ssh into a docker node with this name
27 while getopts "hi:n:" flag; do
30 i) DOCKER_IMAGE_ID=${OPTARG};;
31 n) DOCKER_IMAGE_NAME=${OPTARG};;
32 *) echo "getopts error"
38 shift $(expr $OPTIND - 1)
40 RUN_COMMAND="/bin/bash"
45 which docker &>/dev/null || die "docker must be on the PATH."
47 if [ "x${DOCKER_IMAGE_NAME}" == "x" ]; then
48 if [ "x${DOCKER_IMAGE_ID}" == "x" ]; then
53 if [ "x${DOCKER_IMAGE_ID}" == "x" ]; then
56 echo "You must not supply both an ID and a name."
59 DOCKER_IMAGE_ID=$(docker ps -f name=${DOCKER_IMAGE_NAME} -q)
60 [ "x${DOCKER_IMAGE_ID}" == "x" ] && \
61 die "failed to find a docker image named ${DOCKER_IMAGE_NAME}"
64 docker exec -it "${DOCKER_IMAGE_ID}" ${RUN_COMMAND}