Docker Cheatsheet
Published on December 24, 2020
This document was migrated from DigiDocs
In this section you will find my notes on using Docker for the deployment of Git projects.
Useful Docker commands
You do not have to write out the CONTAINER_ID
in full. The partial CONTAINER_ID
specified need only uniquely identify the container. Given a container 'aa151b912448' and 'aa153cd14238', docker logs aa15
will not work, but docker logs aa151
will.
Starting an interactive shell
docker exec -it [CONTAINER_ID] bash
Stopping and removing containers
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker ps
options:
-q
: Only display numeric IDs-a
: Show all containers (default shows just running)
Inspecting container metadata
docker inspect [CONTAINER_ID]
Viewing container logs
Typical command:
docker logs [CONTAINER_ID]
Follow log output for a specified duration:
docker logs -f --until=[TIME]
TIME can be a TIMESTAMP or relative (e.g. '10m' or '5s')
Docker and Github
Deploy script
This script assumes that the working directory contains a .git
directory, Dockerfile
and package.json
. A .gitignore
and a .dockerignore
file may be useful too. It is also assumed that the project dependencies have been installed using npm install
.
deploy.sh
IMAGE_NAME=""
VERSION="" # Can be left blank
CONTAINER_NAME=""
CONTAINER_PORT="" # To be mapped to HOST_PORT
HOST_PORT="" # The port clients will access
docker stop $CONTAINER_NAME # Stop the running container
docker system prune -af # Removes the container and all unused images
git pull origin master # Pulls latest source files and image
docker build -t $IMAGE_NAME .
docker run --name $CONTAINER_NAME -p $CONTAINER_PORT:$HOST_PORT -d $IMAGE_NAME:$VERSION
Before the script can be used, replace the following placeholders:
IMAGE_NAME
: The name of your image.VERSION
: The version of your image. Can be left blank.CONTAINER_NAME
: The desired name of your container.CONTAINER_PORT
: The port of your container which your application is running on.HOST_PORT
: The host port your container port will be mapped to. This is the port that is exposed on the host system.