0% found this document useful (0 votes)
283 views

Docker Cheat Sheet

This document provides a cheat sheet for using Docker with Java developers. It lists Docker commands for listing and managing images, containers, volumes, and networks. It also provides examples of using Docker Compose and Maven to build, run, publish, and manage Docker containers for Java applications. Additional sections cover adding Java to images, running Spring Boot applications in Docker, and key concepts for Docker Swarm clustering.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
283 views

Docker Cheat Sheet

This document provides a cheat sheet for using Docker with Java developers. It lists Docker commands for listing and managing images, containers, volumes, and networks. It also provides examples of using Docker Compose and Maven to build, run, publish, and manage Docker containers for Java applications. Additional sections cover adding Java to images, running Spring Boot applications in Docker, and key concepts for Docker Swarm clustering.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

DOCKER

CHEAT SHEET
FOR JAVA DEVELOPERS

DOCKER
List all Docker Images
docker images -a

List All Running Docker Containers


docker ps

List All Docker Containers


docker ps -a

Start a Docker Container


docker start <container name>

Stop a Docker Container


docker stop <container name>

Kill All Running Containers


docker kill $(docker ps -q)

View the logs of a Running Docker Container


docker logs <container name>

PAGE 1

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Delete All Stopped Docker Containers


Use -f option to nuke the running containers too.
docker rm $(docker ps -a -q)

Remove a Docker Image


docker rmi <image name>

Delete All Docker Images


docker rmi $(docker images -q)

Delete All Untagged (dangling) Docker Images


docker rmi $(docker images -q -f dangling=true)

Delete All Images


docker rmi $(docker images -q)

Remove Dangling Volumes


docker volume rm -f $(docker volume ls -f dangling=true -q)

SSH Into a Running Docker Container


Okay not technically SSH, but this will give you a bash shell in the
container.

sudo docker exec -it <container name> bash

Use Docker Compose to Build Containers


Run from directory of your docker-compose.yml file.

docker-compose build

PAGE 2

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Use Docker Compose to Start a Group of Containers


Use this command from directory of your docker-compose.yml file.

docker-compose up -d

This will tell Docker to fetch the latest version of the container from
the repo, and not use the local cache.

docker-compose up -d --force-recreate

This can be problematic if youre doing CI builds with Jenkins and


pushing Docker images to another host, or using for CI testing. I was
deploying a Spring Boot Web Application from Jekins, and found the
docker container was not getting refreshed with the latest Spring Boot
artifact.

#stop docker containers, and rebuild


docker-compose stop -t 1
docker-compose rm -f
docker-compose pull
docker-compose build
docker-compose up -d

Follow the Logs of Running Docker Containers With Docker Compose


docker-compose logs -f

Save a Running Docker Container as an Image

docker commit <image name> <name for image>

PAGE 3

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Follow the logs of one container running under Docker Compose

docker-compose logs pump <name>

Add Oracle Java to an Image


For CentOS/ RHEL

ENV JAVA_VERSION 8u31


ENV BUILD_VERSION b13

# Upgrading system
RUN yum -y upgrade
RUN yum -y install wget

# Downloading & Config Java 8


RUN wget --no-cookies --no-check-certificate --header "Cookie:
oraclelicense=accept-securebackup-cookie"
"http://download.oracle.com/otn-pub/java/jdk
/$JAVA_VERSION-$BUILD_VERSION/jdk-$JAVA_VERSION-linux-
x64.rpm" -O /tmp/jdk-8-linux-x64.rpm
RUN yum -y install /tmp/jdk-8-linux-x64.rpm
RUN alternatives --install /usr/bin/java jar /usr/java/latest/bin/java
200000
RUN alternatives --install /usr/bin/javaws javaws /usr/java/latest
/bin/javaws 200000
RUN alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac
200000

PAGE 4

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Add / Run a Spring Boot Executable Jar to a Docker Image


ADD /maven/myapp-0.0.1-SNAPSHOT.jar myapp.jar
RUN sh -c 'touch /myapp.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","
/myapp.jar"]

Show Running Containers


docker ps

Show All Containers - Running and stopped


docker ps -a

Default Tag
'latest' is selected if no other value is specified

Run A Docker Image


docker run <image name>

See the Console Output of a Docker Container


docker logs <container name>

Build a docker image


From the directory of the Dockerfile run:
docker build -t <tag name>

Stop a docker container


docker kill <container name>
or
docker stop <container name>

PAGE 5

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Parameter that tells docker to run the container as a background


process
-d
Example: docker run -d <image name>

List all docker images on your system


docker images

Map a Host Port to a Container Port


-p <host port>: <container port>
Example:
docker run -p 8080:8080 <image name>

Tail the Console Output of a Running Docker Container


docker logs -f <container name>

A .java file to a docker image - i.e. the source code


The Dockerfile

Remove a Stopped Docker Container


docker rm <container name>

Specify an Environment Variable for a Docker Container


docker run -e MY_VAR=my_prop <image name>

Remove a Docker Image from your System


docker rmi <image name>

Shell into a Running Docker Container


docker exec -it <container name> bash

PAGE 6

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Share Storage on a Host System with a Docker container


-v <host path>: <container path>
Example:
docker run -v <host path>: <the container path> <image name>

Name of the Maven plugin we are using for the Course


Fabric8

Map a Host Port to a Container Port


-p <host port>:<container port>
Example:
docker run -p 8080:8080 <image name>

Maven Command to Stop Running Image(s)


mvn docker:stop

Maven Command to Build a Docker Image


mvn clean package
docker:build

Remove a Stopped Docker Container


docker rm <container name>

Maven Command Used to Publish a Docker Image to its Repository


mvn docker:push

Maven Command Used To Start a Docker Image


mvn docker:start

Run Containers in the Background from Maven


mvn docker:start
PAGE 7

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

XML Tag that has the Runtime Parameters for the Fabric8 Plugin
<image>
<run>
**params here**
</run>
</image>

Map a Host Port to a Container Port in Maven Configuration


<ports>
<port>8080:8080</port>
</ports>

Parameter that Creates a Network Host Name Reference for a Docker


Container to Another Container
"--link" {dash dash}
--link <container name>:<hostname>

Specify Environment Variable for a Docker Container in Maven


Configuration
<env>
<parameter_name>{value}</parameter_name>
</env>

Maven Command Used To Start a Docker Image Interactively


mvn docker:run

Where to Store Credentials for Docker Hub


~/.m2/settings.xml

PAGE 8

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Example:
<servers>
<server>
<id>docker.io</id>
<username>springframeworkguru</username>
<password>YourPasswordHere</password>
</server>
</servers>

DOCKER SWARM
Is Docker Swarm automatically enabled?
No, by default, Docker Swarm is not available

Types of Nodes in a Docker Swarm


Manager and worker

Enable the First Node of a Docker Swarm


docker swarm init

List Running Services


docker service ls

Add a Node to a Swarm Cluster


docker swarm join --token <token> --listen-addr <ip:port>

Can manager nodes run containers?


Yes, manager nodes normally run containers

PAGE 9

SPRINGFRAMEWORK.GURU
DOCKER CHEAT SHEET

Retrieve the Join Token


docker swarm join-token

List Nodes in a Cluster


docker node ls

Can you run a 'docker node ls' from a worker node?


No. Docker Swarm commands can only be from manager nodes

List Services in a Docker Swarm


docker service ls

List Containers in a Service


docker service ps <service name>

Remove a Service
docker service rm <service name>

Remove a Node from a Swarm Cluster


docker node rm <node name>

Promote a Node from Worker to Manager


docker node promote <node name>

Change a Node from a Manager to a Worker


docker node demote <node name>

Map a Host Port to a Container Port


-p <host port>: <container port>
Example:
docker run -p 8080:8080 <image name>
PAGE 10

SPRINGFRAMEWORK.GURU

You might also like