Bảng Lệnh Docker - Hướng Dẫn Phát Triển Hiệu Quả
Docker là một công cụ mạnh mẽ giúp lập trình viên xây dựng, triển khai và quản lý ứng dụng trong môi trường ảo hóa. Bảng lệnh dưới đây sẽ giúp bạn dễ dàng tham khảo các lệnh Docker thường dùng trong quá trình phát triển hàng ngày.
Mục Lục
- Lệnh Docker Cơ Bản
- Docker Volumes
- Mạng Docker
- Làm việc với Docker Hub
- Thực Hành Tốt Nhất
- Cái Bẫy Thường Gặp
- Mẹo Hiệu Năng
- Khắc Phục Sự Cố
Lệnh Docker Cơ Bản
Docker cung cấp một loạt các lệnh cơ bản mà lập trình viên có thể sử dụng. Dưới đây là một số lệnh cơ bản:
# Kiểm tra phiên bản Docker đã cài đặt
docker version
# Tải một image từ Docker Hub
docker pull <tên_image>
# Xây dựng một image từ Dockerfile (path = thư mục chứa Dockerfile)
docker build -t <tên_image> <đường_dẫn_đến_dockerfile>
# Chạy một container tương tác
docker run -it <tên_image>
# Chạy một container với ánh xạ cổng (host → container)
docker run -p <cổng_host>:<cổng_container> <tên_image>
# Chạy một container với tên tùy chỉnh
docker run -it --name <tên_container> <tên_image>
# Liệt kê các container đang chạy
docker container ls
# Liệt kê tất cả các container (bao gồm cả container đã dừng)
docker container ls -a
# Dừng một container
docker stop <id_container>
# Xóa một container
docker container rm <id_container>
# Liệt kê tất cả các image
docker image ls
# Xóa một image
docker image rm <id_image>
Docker Volumes
Docker Volumes cho phép bạn lưu trữ dữ liệu bên ngoài container. Dưới đây là một số lệnh để làm việc với volumes:
# Tạo một volume có tên
docker volume create <tên_volume>
# Liệt kê tất cả các volumes
docker volume ls
# Chạy một container với thư mục host đã gắn kết
docker run -it -v <đường_dẫn_host>:<đường_dẫn_container> <tên_image>
# Chạy một container với volume đã đặt tên
docker run -it -v <tên_volume>:<đường_dẫn_container> <tên_image> bash
Mạng Docker
Docker cho phép bạn tạo và quản lý mạng cho các container. Các lệnh sau đây hữu ích cho việc quản lý mạng:
# Liệt kê tất cả các mạng
docker network ls
# Kiểm tra mạng bridge mặc định
docker inspect bridge
# Tạo một mạng mới
docker network create <tên_mạng>
# Chạy một container trong một mạng cụ thể
docker run -it --network <tên_mạng> --name <tên_container> <tên_image>
# Kết nối một container đã tồn tại vào một mạng
docker network connect <tên_mạng> <tên_container>
# Thực thi một lệnh trong một container đang chạy
docker exec -it <tên_container> bash
# Chạy một container với ánh xạ cổng
docker run -it -p <cổng_host>:<cổng_container> <tên_image>
Làm việc với Docker Hub
Docker Hub là nơi lưu trữ các image. Dưới đây là các lệnh để tương tác với Docker Hub:
# Xây dựng một image và gán nhãn cho Docker Hub
docker build -t <tên_người_dùng_dockerhub>/<tên_repo> <đường_dẫn_đến_dockerfile>
# Đẩy image lên Docker Hub
docker push <tên_người_dùng_dockerhub>/<tên_repo>
# Kéo image từ Docker Hub
docker pull <tên_người_dùng_dockerhub>/<tên_repo>
# Chạy container từ image trên Docker Hub
docker run -it <tên_người_dùng_dockerhub>/<tên_repo>
Thực Hành Tốt Nhất
- Sử dụng Tag: Luôn gán nhãn cho image của bạn khi xây dựng để dễ dàng quản lý phiên bản.
- Quản lý tài nguyên: Hãy chắc chắn rằng bạn đang theo dõi và quản lý tài nguyên máy chủ để tránh quá tải.
- Bảo mật: Đừng quên kiểm tra và cập nhật các image để tránh lỗ hổng bảo mật.
Cái Bẫy Thường Gặp
- Container không khởi động: Kiểm tra lại lệnh chạy và các tham số đã nhập.
- Không thể kết nối đến mạng: Đảm bảo rằng bạn đã tạo mạng và container được kết nối chính xác.
Mẹo Hiệu Năng
- Sử dụng Docker Volumes: Để cải thiện hiệu suất, hãy sử dụng volumes thay vì lưu trữ dữ liệu bên trong container.
- Tối ưu hóa image: Giảm kích thước image bằng cách chỉ cài đặt các gói cần thiết.
Khắc Phục Sự Cố
- Container không phản hồi: Sử dụng lệnh
docker logs <tên_container>để kiểm tra nhật ký và xác định nguyên nhân. - Vấn đề về mạng: Kiểm tra cấu hình mạng và đảm bảo các container được kết nối chính xác.
Kết Luận
Bảng lệnh Docker này cung cấp cho bạn một cái nhìn tổng quan và dễ hiểu về cách sử dụng các lệnh Docker trong phát triển hàng ngày. Đừng ngần ngại thử nghiệm và áp dụng các lệnh này trong dự án của bạn để nâng cao hiệu quả làm việc.
Câu Hỏi Thường Gặp
- Docker là gì?
Docker là một nền tảng cho phép bạn phát triển, vận chuyển và chạy ứng dụng trong môi trường container. - Container khác gì với Virtual Machine?
Container nhẹ hơn và chia sẻ hệ điều hành, trong khi Virtual Machine có hệ điều hành riêng biệt.
Tài Liệu Tham Khảo
Hãy bắt đầu làm việc với Docker ngay hôm nay để nâng cao kỹ năng phát triển của bạn!