Việc làm chủ các lệnh Docker cơ bản là yêu cầu tiên quyết giúp mình đóng gói và triển khai ứng dụng một cách nhất quán trên mọi môi trường từ Staging đến production. Thay vì liệt kê danh sách lệnh khô khan, bài viết này đúc kết từ quá trình tôi trực tiếp vận hành các Container hàng ngày để tối ưu hóa tài nguyên máy chủ. Những hướng dẫn dưới đây sẽ giúp bạn chuẩn hóa thao tác quản lý Docker, đảm bảo hệ thống vận hành trơn tru và chính xác theo đúng quy chuẩn kỹ thuật.
Những điểm chính
Đối với mình, Docker không chỉ là công cụ đóng gói ứng dụng mà còn là nền tảng giúp triển khai, mở rộng và quản lý môi trường một cách nhất quán giữa các hệ thống. Để giúp bạn hiểu rõ hơn về Docker và cách sử dụng trong thực tế, bài viết dưới đây sẽ cung cấp các thông tin gồm:
- Tổng quan: Hiểu rõ Docker là nền tảng mã nguồn mở tiên tiến, hỗ trợ tự động hóa toàn diện quy trình triển khai, mở rộng quy mô và quản lý ứng dụng.
- Lệnh Docker: Nắm được khái niệm lệnh Docker là công cụ CLI, giúp tương tác và quản lý toàn bộ hệ sinh thái Docker.
- Lợi ích: Nhận biết các ưu điểm chính như tính nhất quán, triển khai nhanh và tối ưu tài nguyên, giúp đánh giá giá trị của việc áp dụng Docker.
- Yêu cầu cài đặt: Nắm được các bước cài đặt Docker Engine, giúp chuẩn bị môi trường sẵn sàng để bắt đầu sử dụng.
- Các lệnh cơ bản: Nắm vững các lệnh cốt lõi để khởi chạy, quản lý và làm việc với container, image, giúp bạn thực hiện các tác vụ hàng ngày một cách hiệu quả.
- Xử lý lỗi: Nhận biết và khắc phục các lỗi phổ biến, giúp giải quyết nhanh các sự cố thường gặp.
- Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến các lệnh Docker cơ bản.
Tổng quan về Docker
Docker là nền tảng mã nguồn mở tiên tiến, hỗ trợ tự động hóa toàn diện quy trình triển khai, mở rộng quy mô và quản lý ứng dụng nhờ công nghệ container hóa đột phá. Container đại diện cho đơn vị đóng gói chuẩn hóa, tích hợp hoàn hảo vào mã nguồn ứng dụng cùng toàn bộ phụ thuộc thiết yếu như thư viện, tệp nhị phân và cấu hình hệ thống, đảm bảo vận hành mượt mà trên mọi môi trường tính toán đa dạng từ máy cục bộ đến hạ tầng đám mây.
Docker trao quyền cho lập trình viên gói gọn ứng dụng cùng mọi yếu tố cần chạy gồm code, thư viện, công cụ hệ thống vào container di động, loại bỏ triệt để vấn đề “works on my machine” nhờ môi trường cô lập nhẹ nhàng, nhất quán và triển khai siêu tốc. Đây là nền tảng phát triển, xây dựng, kiểm tra và đưa ứng dụng lên production một cách đơn giản, hiệu quả vượt trội.

Lệnh Docker trong Linux là gì?
Lệnh Docker là công cụ dòng lệnh chính thức (CLI – Command Line Interface) thuộc nền tảng Docker, dùng để tương tác trực tiếp với daemon Docker. Công cụ này cho phép người dùng xây dựng, chạy, quản lý container, hình ảnh, mạng lưới và volume qua các lệnh đơn giản trên terminal. Lệnh Docker hỗ trợ hàng trăm tùy chọn, từ kiểm tra trạng thái đến xóa tài nguyên, giúp tự động hóa quy trình DevOps hiệu quả.

Lợi ích khi sử dụng Docker
Docker mang lại nhiều lợi ích nổi bật nhờ công nghệ container hóa, giúp tối ưu hóa quy trình phát triển và vận hành ứng dụng. Các lợi ích nổi bật khi sử dụng Docker bao gồm:
- Tính nhất quán vượt trội: Ứng dụng vận hành đồng bộ, giống hệt trên mọi môi trường từ local đến production.
- Triển khai tức thì: Khởi động ứng dụng nhanh chóng trên bất kỳ máy chủ nào hỗ trợ Docker.
- Cô lập hoàn hảo: Môi trường độc lập tránh xung đột, không can thiệp vào hệ điều hành gốc.
- Tối ưu hóa tài nguyên: Chạy đồng thời nhiều ứng dụng trên một server với hiệu suất cao hơn.

Yêu cầu cài đặt Docker
Docker Engine đòi hỏi quy trình thiết lập phức tạp hơn so với các tiện ích Linux thông thường. Để cài đặt trên Debian/Ubuntu thì bạn cần áp dụng câu lệnh:
apt update
apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.ioSau khi cài đặt hoàn tất thì bạn cần dùng lệnh dưới đây để khởi động dịch vụ và kiểm tra:
systemctl enable docker
systemctl start docker
docker run hello-worldCác lệnh sử dụng Docker cơ bản
1. Khởi chạy container đầu tiên
Mục đích của việc dùng lệnh khởi chạy container đầu tiên để chạy ngay lập tức một ứng dụng hoặc dịch vụ từ Image có sẵn. Bạn có thể khởi động nhanh Web Server Nginx để kiểm tra với lệnh:
docker run -d -p 8080:80 --name my_nginx nginx
Giải thích:
- docker run khởi tạo container mới.
- d (detach) chạy container ở chế độ nền.
- p 8080:80 ánh xạ cổng 8080 trên máy Host tới cổng 80 bên trong container Nginx.
- name my_nginx đặt tên dễ nhớ cho container.
- nginx chỉ định tên Image Docker sẽ sử dụng (Docker tự động pull nếu chưa có).
2. Hiển thị danh sách các container đang chạy
Bạn có thể kiểm tra trạng thái, thời gian hoạt động và ID của các container với lệnh:
docker ps
Giải thích:
- Lệnh docker ps hiển thị các container đang chạy (Up).
- docker ps -a xem tất cả container bao gồm cả những container đã dừng.
3. Dừng và xóa container
Mục đích để dừng và xóa container để giải phóng tài nguyên hệ thống bằng cách dừng và xóa các container không cần thiết. Bạn có thể sử dụng lệnh sau:
docker stop my_nginx
docker rm my_nginx
Giải thích:
- docker stop [TÊN/ID] gửi tín hiệu dừng (SIGTERM) cho container.
- docker rm [TÊN/ID] xóa container (chỉ xóa được container đã dừng).
4. Làm việc với Image
Để quản lý kho Image lưu trữ các bản thiết kế của container thì bạn có thể sử dụng lệnh sau:
docker search centos
docker pull centos:latest
Giải thích:
- docker search tìm kiếm Image trên Docker Hub.
- docker pull tải Image về máy local. centos:latest là ví dụ cú pháp Tên_Image:Tag.
5. Phối hợp linh hoạt lệnh Docker với các cú pháp nâng cao
Trong thực tế, chúng ta thường phải kết hợp nhiều lệnh Docker và cú pháp shell để đồng thời quan sát hoạt động, can thiệp kịp thời, dọn dẹp môi trường và quản lý lưu trữ dữ liệu một cách chủ động:
| Kịch bản | Cú pháp lệnh | Giải thích Logic |
| Gỡ lỗi (Debugging) | docker logs -f my_nginx | Xem nhật ký theo thời gian thực của container my_nginx. |
| Thực thi lệnh bên trong | docker exec -it my_nginx bash | Thực thi lệnh bên trong container đang chạy. -i và -t cần thiết để mở session bash tương tác. |
| Xóa tất cả container đã dừng | docker rm $(docker ps -aq) | Kết hợp lệnh docker ps -aq lấy ra ID của tất cả container đã dừng, sau đó pipe ($()) kết quả vào docker rm. |
| Sao chép tập tin | docker cp index.html my_nginx:/usr/share/nginx/html/ | Sao chép file từ Host vào container đang chạy, tiện lợi cho việc cập nhật nhanh. |
| Chạy với Volume (Lưu trữ bền vững) | docker run -v /data:/app/data –name app_db my_app_image | Gắn thư mục /data trên Host vào /app/data trong container (-v), đảm bảo dữ liệu không bị mất khi container bị xóa. |
Từ góc độ quản trị, giá trị thực tế của Docker nằm ở khả năng kết hợp linh hoạt các lệnh và cú pháp shell để tự động hóa xử lý dữ liệu và khắc phục sự cố, thay vì chỉ sử dụng từng lệnh đơn lẻ. Các lệnh nâng cao như docker exec và docker logs -f được dùng thường xuyên để quan sát và gỡ lỗi ứng dụng trực tiếp mà không cần khởi động lại container. Đồng thời, Volume Mapping (-v) giúp tách dữ liệu người dùng khỏi vòng đời container, đảm bảo dữ liệu vẫn tồn tại khi container bị xóa hoặc nâng cấp và hỗ trợ quá trình gỡ lỗi đang chạy một cách an toàn.
Cách xử lý một số lỗi thường gặp
Dưới đây là một sô lỗi thường gặp khi sử dụng lệnh Docker và cách xử lý chi tiết:
| Lỗi phổ biến | Nguyên nhân | Khắc phục |
| permission denied while trying to connect to the Docker daemon socket | User hiện tại không có quyền truy cập Docker daemon | Thêm user vào nhóm docker: sudo usermod -aG docker $USER. Sau đó log out/log in lại |
| Error response from daemon: driver failed programming external connectivity… | Lỗi xung đột port. Có thể port bạn đang cố gắng map (ví dụ: 8080) đã được sử dụng bởi một dịch vụ khác trên host. | Dùng ss -tuln hoặc netstat -tuln để kiểm tra cổng đang bị chiếm, sau đó chọn cổng khác. |
| Container bị thoát ngay lập tức. | Lệnh mặc định của container đã hoàn thành hoặc lỗi. Ví dụ: Chạy container ubuntu mà không có lệnh. | Dùng docker logs [TÊN] để kiểm tra output. Bạn thường cần thêm lệnh duy trì chạy nền: docker run -d ubuntu sleep 3600. |
| docker: command not found | Gói Docker chưa được cài đặt hoặc biến môi trường $PATH bị thiếu. | Cài đặt lại theo hướng dẫn hoặc kiểm tra đường dẫn /usr/bin/docker. |
Câu hỏi thường gặp
Lệnh docker ps dùng để làm gì?
docker ps hiển thị danh sách container đang chạy, bao gồm ID, hình ảnh, cổng, trạng thái và thời gian hoạt động. Ví dụ: docker ps chỉ hiện container active; docker ps -a xem tất cả (kể cả stopped).
Docker run là gì?
docker run tạo và khởi động container mới từ image chỉ định. Ví dụ: docker run -d -p 80:80 nginx chạy Nginx ngầm, map cổng 80 host sang 80 container. Tùy chọn phổ biến: -d (detach), -p (port mapping), –name (đặt tên).
Docker start hoạt động ra sao?
docker start khởi động lại container đã tồn tại nhưng đang dừng (không tạo mới như docker run).
Ví dụ: docker start my_container khôi phục container từ trạng thái Exited.
docker exec dùng cho mục đích gì?
docker exec chạy lệnh bên trong container đang hoạt động, hỗ trợ truy cập shell tương tác. Ví dụ: docker exec -it my_nginx bash mở bash shell; docker exec my_nginx ls /app liệt kê file.
Các lệnh Docker cơ bản như docker run, docker ps, docker stop, docker exec cùng docker-compose trở thành công cụ thiết yếu để xây dựng, quản lý và triển khai ứng dụng hiệu quả. Việc thực hành thường xuyên qua các ví dụ trên sẽ mang lại sự tự tin cho bạn trong môi trường DevOps thực thụ. Cảm ơn bạn đã theo dõi bài viết!




