Tổng hợp các lệnh cơ bản khi làm việc với Docker

Docker là một giải pháp cung cấp giúp chúng ta có thể chạy các ứng dụng một cách bảo mật và cô lập hoàn toàn trong một thùng chứa (Container). Trong thùng chứa này sẽ gồm ứng dụng của chúng ta và tất cả các thành phần phụ thuộc và thư viện giúp chúng ta có thể khởi chạy ứng dụng.
Giả sử bạn làm một dự án về ASP .NET Core bạn sẽ cần .NET Core Runtime để có thể chạy ứng dụng, ngoài ta trong dự án có lưu các thông tin vào database dùng SQL Server, caching dữ liệu dùng Redis, cung cấp chức năng tìm kiếm sử dụng Elasticsearch ..... Khi đó để có thể triển khai và chạy ứng dụng này thì ta sẽ đưa hết tất cả các thành phần này vào cùng trong một thùng chứa (Container) hoàn toàn độc lập với các thùng chứa khác. Khi deploy hệ thống hoặc đưa cho người khác kiểm tra ta chỉ cần bê nguyên cả cái  thùng này cho họ và tiến hành chạy. Mọi thứ cần thiết đã có hết ở bên trong. Đây là ưu điểm lớn nhất của Docker.



Mình sẽ có một bài viết khác giới thiệu sơ qua rõ hơn về Docker. Các bạn có thể tham khảo thêm tài liệu cụ thể trên trang chủ của Docker ở đây.

Bài này chỉ tập trung liệt kê các lệnh cơ bản khi làm việc với Docker. Các lệnh sẽ được cập nhật thường xuyên

Một số lệnh cơ bản
docker version
docker --version
docker info
docker --help

Liệt kê tất cả các containers
docker ps -a
docker ps -aq

Liệt kê tất cả các images
docker images

Stop tất cả các containers
docker stop $(docker ps -aq)

Xóa tất cả các containers
docker rm $(docker ps -aq)

Restart tất cả các containers
docker restart $(docker ps -aq)

Xóa tất cả images
docker rmi $(docker images -q)

Khởi chạy một container
docker start CONTAINER ID or NAME
docker start d3c4ab668be6
docker start local-rabbitmq


Tạm dừng một container
docker stop CONTAINER ID or NAME
docker stop d3c4ab668be6
docker stop local-rabbitmq

Xóa một container
docker rm CONTAINER ID or NAME

Khởi tạo và chạy container
docker run

Thay đổi tên container
docker rename

Thực thư lệnh trong container
docker exec
docker exec -it {container_name} /bin/bash

Pull một image từ Docker Hub
docker pull image_name
docker pull ubuntu:16.04

Xóa tất cả các containers đã dừng và các images không sử dụng
docker system prune -a

Xóa các containers, images, volumes không sử dụng
docker container prune
docker image prune
docker volume prune

Tag một image
docker tag ubuntu:16:04 tuannguyenssu/ubuntu:latest

Push một image lên Registry
docker push tuannguyenssu/ubuntu:latest

Xem thông tin chi tiết một container
docker inspect container_name

Thống kê tài nguyên sử dụng của các container đang chạy
docker stats

Save và Load image to/from file
docker save --output file.tar container_name
docker load -i file.tar

Hiển thị log
docker logs -f container_name

Liệt kê các networks
docker network ls

Liệt kê các volumes
docker volume ls

Copy files giữa host và container
docker cp src/. container_id_or_name:/target (host -> container)
docker cp container_id_or_name:/src/. target (container -> host)

Liệt kê lịch sử một image
docker history image_id

Đăng nhập/ Đăng xuất
docker login
docker logout

Một số lệnh với Docker Compose
docker-compose --help
docker-compose build
docker-compose build --parallel
docker-compose build --force-rm --no-cache --parallel
docker-compose build service_name
docker-compose up -d
docker-compose up -d --build
docker-compose up --no-build
docker-compose up service_name
docker-compose start
docker-compose start service_name
docker-compose stop
docker-compose stop service_name
docker-compose down
docker-compose -f docker-compose-file.yml

docker-compose config
docker-compose create
docker-compose events
docker-compose exec
docker-compose kill
docker-compose logs
docker-compose pause
docker-compose port
docker-compose ps
docker-compose pull
docker-compose push
docker-compose restart
docker-compose run
docker-compose scale
docker-compose top
docker-compose unpause

Tham khảo thêm
https://github.com/wsargent/docker-cheat-sheet
https://github.com/Haufe-Lexware/docker-style-guide
https://docs.docker.com/engine/reference/commandline/cli



Tiếp tục cập nhật ...