Overview

Learn to build and deploy your distributed applications easily to the cloud with Docker

Installation

This is optional in docker docs, but I recommend not skipping this step: https://docs.docker.com/engine/install/linux-postinstall/

Usage:

This guide should be enough for beginers and for those who want to refresh again with the docker skills - https://docker-curriculum.com/

Some useful commands. Reference: https://docker-curriculum.com/

*Note: First go through the article above, it will make these commands more understandable

CommandDescription
  
docker pull busybox

 

The pull command fetches the busybox image from the Docker registry and saves it to our system.
docker images

 

See a list of all docker images on your system.
docker run busybox	

 

Run a Docker container based on image
docker ps

 

Shows you all containers that are currently running.
docker ps -a

 

List of all containers that we ran.
docker run -it busybox sh

 

Attaches us to an interactive tty in the container.
docker run --help

 

See a list of all flags run command supports.
docker rmi <image_id>
Remove a docker image.
docker rm <container_id>

 

Clean up containers once done with them.
docker rm $(docker ps -a -q -f status=exited)

 

Deleting bunch of stoped containers
docker container prune

 

Deleting bunch of stoped containers (Similar to above - Supports later versions)
docker run -d -P --name static-site prakhar1989/static-site

 

-d will detach our terminal, -P will publish all exposed ports to random ports and finally --name corresponds to a name we want to give.
docker port static-site

 

List the ports of static-site container
docker run -p 8888:80 prakhar1989/static-site

 

Specify a custom port to which the client will forward connections to the container. You can access it at localhost:8888 on your browser.
docker stop static-site

 

Stop a detached container.
docker pull ubuntu:18.04

 

You can pull a specific version of ubuntu image.
docker build -t yourusername/catnip .

 

The docker build command does the heavy-lifting of creating a Docker image from a Dockerfile. It is quite simple - it takes an optional tag name with -t and a location of the directory containing the Dockerfile.
docker login

 

Provide the same credentials that you used for logging into Docker Hub.
docker push yourusername/catnip

 

To publish, just type the below command remembering to replace the name of the image tag above with yours. It is important to have the format of yourusername/image_name so that the client knows where to publish.
docker search elasticsearch

 

Search for an image.
docker container ls

 

Similar to docker ps.
docker network ls

 

List of networks in docker.
docker network inspect bridge

 

To inspect the network.
docker network create foodtrucks-net

 

The network create command creates a new bridge network, which is what we need at the moment. In terms of Docker, a bridge network uses a software bridge which allows containers connected to the same bridge network to communicate, while providing isolation from containers which are not connected to that bridge network. 
docker container stop es

 

Stop a container.
docker container rm es

 

Remove a container.

docker run -d --net foodtrucks-net -p 5000:5000 --name foodtrucks-web prakhar1989/foodtrucks-web

We can launch our containers inside the custom network using the --net flag.
docker-compose up

 

So what is Compose used for? Compose is a tool that is used for defining and running multi-container Docker apps in an easy way. It provides a configuration file called docker-compose.yml that can be used to bring up an application and the suite of services it depends on with just one command. You can read more about it on docker compose docs.
docker-compose down -v

 

To destroy the cluster and the data volumes. Otherwise you would have used: docker stop and docker rm.
docker-compose up -d

 

docker-compose up in detached mode.
docker-compose run web bash

 

Opens the shell inside the web service.

Explore