logo

Comprehensive Docker Reference Guide

O

Ohidur Rahman Bappy

MAR 22, 2025

Docker Commands, Help & Tips

Show Commands & Management Commands

docker

Docker Version Information

docker version

Display Docker System Information

docker info

Working with Containers

Run a Container in the Foreground

docker container run -it -p 80:80 nginx

Run a Container in the Background

docker container run -d -p 80:80 nginx

Container Naming

docker container run -d -p 80:80 --name nginx-server nginx

Tip: Understanding docker run

  • Searches for the nginx image in the local cache
  • If not found, it pulls from Docker Hub
  • Maps port 80 on the host to port 80 on the container

List Running Containers

docker container ls

List All Containers

docker container ls -a

Stop a Container

docker container stop [ID]

Stop All Running Containers

docker stop $(docker ps -aq)

Remove a Container

docker container rm [ID]

Force Remove a Running Container

docker container rm -f [ID]

Retrieve Container Logs

docker container logs [NAME]

Docker Images Commands

List Local Images

docker image ls

Pull an Image

docker pull [IMAGE]

Remove an Image

docker image rm [IMAGE]

Tip: About Images

  • Images are application binaries with dependencies
  • Host provides the kernel, unlike VMs

Container Information

Inspect a Container

docker container inspect [NAME]

Container Performance Stats

docker container stats [NAME]

Accessing Containers

Access a New NGINX Container

docker container run -it --name [NAME] nginx bash

Run and Access an Ubuntu Container

docker container run -it --name ubuntu ubuntu

Execute Commands in a Running Container

docker container exec -it mysql bash

Tip: Alpine Linux

  • Smaller size, uses apk for package management

Networking

List Networks

docker network ls

Create and Connect a Network

docker network create [NETWORK_NAME]
docker container run -d --name [NAME] --network [NETWORK_NAME] nginx

Image Tagging & Docker Hub

Retag Existing Image

docker image tag nginx yourname/nginx

Push Image to Docker Hub

docker image push yourname/nginx

Dockerfile Parts

  • FROM: Base OS
  • ENV: Environment variables
  • RUN: Commands to execute
  • CMD: Default command for container

Build Image from Dockerfile

docker image build -t [REPONAME] .

Volumes

Check Volumes

docker volume ls

Run with Named Volumes

docker container run -d --name mysql -v mysql-db:/var/lib/mysql mysql

Bind Mounts

Run with Bind Mounts

docker container run -p 80:80 -v $(pwd):/usr/share/nginx/html nginx

Docker Compose

Sample docker-compose.yml

version: '2'
services:
  jekyll:
    image: bretfisher/jekyll-serve
    volumes:
      - .:/site
    ports:
      - '80:4000'

Run Docker Compose

docker-compose up

Clean Up with Docker Compose

docker-compose down