Docker Basic Commands on Linux

Understanding these basic Docker commands gives you the foundation to create, manage, and interact with containers.

Bertie Atkinson

Docker provides a way to package and run applications in isolated environments called containers. Let’s explore the fundamental Docker commands you’ll need when working on a Linux system.

Container Management

CommandDescriptionExample
docker runStart a new containerdocker run -d --name my_nginx -p 8080:80 nginx
docker psList running containersdocker ps -a (show all containers)
docker stopStop a running containerdocker stop my_nginx
docker startStart a stopped containerdocker start my_nginx
docker restartRestart a containerdocker restart my_nginx
docker rmRemove a stopped containerdocker rm my_nginx (add -f to force)
docker execRun a command in a running containerdocker exec -it my_nginx bash
docker logsView container logsdocker logs -f my_nginx (follow logs)
docker cpCopy files between host/containerdocker cp my_nginx:/file.txt ./

Image Management

CommandDescriptionExample
docker imagesList downloaded imagesdocker images
docker rmiRemove an imagedocker rmi nginx (add -f to force)
docker pullDownload an imagedocker pull ubuntu:latest
docker pushUpload to a registrydocker push my_image:tag
docker buildBuild an image from a Dockerfiledocker build -t my_image:tag .

Network Management

CommandDescriptionExample
docker network lsList networksdocker network ls
docker network createCreate a custom networkdocker network create my_net
docker network inspectInspect network detailsdocker network inspect my_net

Volume Management

CommandDescriptionExample
docker volume createCreate a volumedocker volume create my_vol
docker volume lsList volumesdocker volume ls
docker volume rmRemove a volumedocker volume rm my_vol

System & Maintenance

CommandDescriptionExample
docker infoDisplay system-wide infodocker info
docker system pruneClean up unused resourcesdocker system prune -a (⚠️ removes all unused data)
docker versionShow Docker versiondocker version

Common Use Cases

  1. Run a MySQL container with volume and env vars:
   docker run -d --name mysql_db \
     -v mysql_data:/var/lib/mysql \
     -e MYSQL_ROOT_PASSWORD=secret \
     mysql:latest
  1. Build and tag a custom image:
   docker build -t my_app:v1 -f Dockerfile .
  1. Bind host port to container port:
   docker run -d -p 8080:80 --name webserver nginx

Tips

  • Use -d for detached mode (run in background).
  • Use -it for interactive shells (e.g., docker exec -it).
  • Use --rm to auto-remove containers after they exit.

For advanced workflows, explore Docker Compose for multi-container setups.

Share This Article