Tài liệu này tổng hợp các câu lệnh thường dùng khi làm việc với Docker, bao gồm việc xây dựng image, chạy container, và xuất/lưu image tĩnh.
Lệnh này sẽ đọc file Dockerfile trong thư mục hiện tại (.) và đóng gói mã nguồn thành một image đóng gói sẵn.
# Cú pháp: docker build -t <tên-image>:<tag> .
docker build -t keeppley_nodejs_app:latest .(Lưu ý: Dấu chấm . ở cuối cùng đại diện cho thư mục hiện tại chứa Dockerfile).
Sau khi lấy được image, bạn có thể khởi chạy nó dưới dạng container. Lệnh dưới đây chạy ảnh keeppley_nodejs_app, map cổng 3001 trên máy thật với cổng 3001 trong container.
# Cú pháp: docker run -p <cổng-máy-host>:<cổng-container> -d --name <tên_container> <tên-image>:<tag>
docker run -p 3001:3001 -d --name my_app_container keeppley_nodejs_app:latest-d: Chạy ngầm (detached mode).-p: Map port nội bộ ra port bên ngoài localhost.--name: Đặt tên dễ nhớ cho container này.
# Xem các container đang chạy
docker ps
# Xem TẤT CẢ các container (cả những cái đã tắt)
docker ps -a
# Xem các image hiện có trên máy
docker images# Dừng container đang chạy
docker stop my_app_container
# Xóa hoàn toàn container (cần stop trước)
docker rm my_app_containerNếu bạn muốn copy image sang một máy tính khác chưa có mạng hoặc không muốn đưa lên mạng (Docker Hub), bạn có thể xuất image ra file nén .tar.
# Lưu image thành file tar
docker save -o keeppley_app_image.tar keeppley_nodejs_app:latestKhi copy file keeppley_app_image.tar sang máy khác, bạn chạy lệnh sau để bung nó vào Docker của máy đó:
# Nạp image từ file tar
docker load -i keeppley_app_image.tarNếu đưa lên Docker Hub (như trong GitHub Actions), bạn làm theo các bước sau:
docker login
# Nhập username và password của Docker HubĐịnh dạng tên image bắt buộc phải có username Docker Hub đứng trước.
docker tag keeppley_nodejs_app:latest <username_của_bạn>/keeppley_nodejs_app:latest# Đẩy lên Docker Hub
docker push <username_của_bạn>/keeppley_nodejs_app:latest
# Máy người khác tải về
docker pull <username_của_bạn>/keeppley_nodejs_app:latestVì dự án của bạn có file docker-compose.yml định nghĩa sẵn cả giao diện (app) lẫn database MySQL (db), việc khởi chạy toàn bộ hệ thống đơn giản hơn rất nhiều:
docker-compose up --build -dup: Dựng các container.--build: Bắt Docker build lại image mới nếu code có thay đổi.-d: Chạy ngầm.
Dự án sẽ tự động chạy Node.js ở http://localhost:3001 và Database ở port 3306.
Lệnh này dừng và loại bỏ các container nhưng DỮ LIỆU MySQL VẪN ĐƯỢC GIỮ LẠI (vì đã cài volume db_data trong file docker-compose).
docker-compose downNếu bạn muốn đặt lại (reset) cơ sở dữ liệu làm mới hoàn toàn:
docker-compose down -v(Flag -v sẽ xoá cả database storage local volume).