Docker giúp việc đóng gói và triển khai ứng dụng trở nên đơn giản hơn, hiệu quả hơn. Tuy nhiên, nếu không bảo mật đúng cách, Docker container sẽ là cửa ngõ tấn công toàn bộ hệ thống.
Trong bài viết này, GDATA sẽ chia sẻ 9+ mẹo bảo mật Docker container [2025]. Nội dung được tổng hợp từ thực tế triển khai hạ tầng cloud cho doanh nghiệp. Mời bạn đọc cùng tìm hiểu ngay thôi nào!
Docker Container là gì?
Docker Container là một môi trường chạy ứng dụng được đóng gói gọn nhẹ. Nó bao gồm toàn bộ mã nguồn, thư viện, cấu hình và các thành phần cần thiết để ứng dụng hoạt động.
Container giúp bạn triển khai ứng dụng đồng nhất trên mọi môi trường. Ví dụ như local, staging, production, mà không lo “chạy được trên máy tôi, nhưng không chạy được trên máy khác”.
Đặc điểm nổi bật của Docker Container:
| Đặc điểm | Mô tả |
|---|---|
| Nhẹ hơn máy ảo | Không cần OS riêng như Virtual Machine (VM), chia sẻ kernel với hệ điều hành host |
| Khởi động nhanh | Container khởi chạy chỉ trong vài giây |
| Dễ dàng sao chép & triển khai | Có thể build image một lần rồi chạy ở mọi nơi |
| Tách biệt với hệ thống host | Ứng dụng trong container không ảnh hưởng đến hệ điều hành chính |
Ví dụ:
Thay vì cài đặt Node.js trên máy chủ, bạn chỉ cần:
bash
➡️Môi trường Node.js sẵn sàng chạy ứng dụng, không cần cài đặt gì thêm.
Docker Container dùng để làm gì?
Docker containers là một công nghệ containerization giúp đóng gói và chạy các ứng dụng trong một môi trường cách ly:
- Chạy web server (Apache, NGINX)
- Deploy ứng dụng Node.js, Python, Java…
- Cài các công cụ DevOps như Jenkins, GitLab CI
- Thiết lập môi trường học AI, ML, Data Science
- Đóng gói microservices trong các kiến trúc lớn (Kubernetes)
Vì sao cần bảo mật Docker Container?
Docker container giúp đóng gói và triển khai ứng dụng nhanh chóng. Nhưng chính sự tiện lợi đó lại khiến nó trở thành mục tiêu tấn công lý tưởng cho tin tặc; nếu bạn bỏ qua những cấu hình bảo mật quan trọng.
Theo báo cáo của Snyk và SentinelOne năm 2024 thì:
- 63% image trên Docker Hub chứa ít nhất 1 lỗ hổng bảo mật (CVE)
- Hơn 50% hệ thống container doanh nghiệp sử dụng container chạy với quyền root
- Gần 40% hệ thống không giới hạn tài nguyên container. Chính vì thế sẽ dễ bị khai thác DDoS nội bộ
Có thể bạn quan tâm: Docker và Kubernetes: Lựa Chọn Nào Cho Doanh Nghiệp?
9+ mẹo bảo mật Docker Container chi tiết [2025]
Dưới đây là 9 mẹo bảo mật mà bạn có thể tham khảo cho Docker Container:
1. Sử dụng Docker Image chính chủ & đã kiểm định
Đầu tiên, bạn nên hạn chế tối đa dùng image không rõ nguồn
Giải pháp:
- Luôn chọn image có dấu tick xanh trên Docker Hub (Verified Publisher)
- Không dùng tag
latest, hãy chỉ định phiên bản cụ thể (VD:nginx:1.25.3) - Dùng lệnh kiểm tra chi tiết image:
docker inspect nginx:1.25.3
✅ Bật Docker Content Trust để chỉ pull image có chữ ký: export DOCKER_CONTENT_TRUST=1

2. Không chạy container bằng quyền root
Theo tài liệu chính thức của Docker và OWASP Top 10 về Docker (2024), việc chạy container bằng tài khoản root có thể tạo điều kiện cho hacker leo thang đặc quyền và kiểm soát hệ thống host.
Cách thực hiện:
– Trong Dockerfile:
– Trong docker-compose.yml:
3. Giới hạn quyền Linux Capabilities để bảo mật Docker Container
Docker mặc định cấp nhiều quyền hệ thống hơn mức cần thiết.
Cách thực hiện:
→ Chỉ cấp những quyền thực sự cần như NET_ADMIN, SYS_TIME nếu bắt buộc.
4. Không mount thư mục nhạy cảm từ máy host
Tránh mount các đường dẫn như /, /etc, /var/run/docker.sock
Sai lầm phổ biến:
Cách làm đúng:
5. Quét lỗ hổng image trước khi sử dụng – Bảo mật Docker Container
Các công cụ phổ biến:
- Trivy (miễn phí – nhanh – chính xác):
- Snyk CLI
- Docker Scout (có sẵn nếu bạn dùng Docker Desktop)
✅ Tích hợp kiểm tra image vào CI/CD (VD: GitHub Actions, GitLab Pipeline)
6. Giới hạn tài nguyên container
Tránh tình trạng 1 container chiếm toàn bộ CPU, RAM gây “đóng băng” hệ thống
Cách làm:
Trong docker-compose.yml:
7. Cập nhật image thường xuyên & định kỳ rebuild
Về việc cập nhật image:
- Image cần được build lại ít nhất mỗi tuần để cập nhật gói bảo mật mới
- Theo dõi CVE từ GitHub hoặc Docker Advisory
Gợi ý: Bạn có thể tự động hóa rebuild bằng cron hoặc CI/CD
8. Cấu hình mạng nội bộ & giới hạn truy cập nhằm bảo mật Docker Container
Không nên public port container trực tiếp ra internet nếu không có reverse proxy bảo vệ
Bạn có thể:
- Dùng mạng Docker riêng:
docker network create secure-net - Dùng reverse proxy: NGINX, Traefik
- Giới hạn IP truy cập bằng tường lửa hoặc cài Auth Basic
9. Bật AppArmor, SELinux và theo dõi hành vi container
AppArmor (Ubuntu):
SELinux (CentOS/RedHat):
Kiểm tra log & áp dụng quy tắc từ hệ điều hành.
Giám sát container bằng công cụ
Bạn có thể giám sát container bằng công cụ sau:
| Công cụ | Mục đích |
|---|---|
| Falco | Phát hiện hành vi container bất thường |
| AuditD | Ghi log toàn bộ hành vi hệ thống |
| Prometheus + Grafana | Giám sát real-time tài nguyên |
Bảng tóm tắt 9+ mẹo bảo mật Docker Container
| Mẹo | Mục tiêu | Công cụ hỗ trợ |
|---|---|---|
| Image chuẩn | Ngăn mã độc | Docker Trust, Trivy |
| Không root | Chống leo thang đặc quyền | Dockerfile USER |
| Giới hạn Cap | Ngăn gọi API hệ thống nguy hiểm | --cap-drop, --cap-add |
| Không mount sock | Tránh container kiểm soát Docker daemon | Docker Volume |
| Giới hạn RAM/CPU | Ổn định tài nguyên | Compose, run options |
| Mạng riêng | Tránh bị scan cổng | Docker Network, proxy |
| Scan image | Ngăn CVE | Trivy, Snyk |
| SELinux/AppArmor | Hạn chế hành vi container | OS-level controls |
Hướng dẫn thêm: Tạo Dockerfile chuẩn bảo mật
🎯 Mục tiêu: Tạo Dockerfile nhẹ, an toàn, không chạy root, dễ duy trì
MẪU CHUẨN BẢO MẬT
✅ Ý nghĩa:
| Lệnh | Giải thích |
|---|---|
FROM node:18.19.0-slim | Image nhẹ, giảm tấn công |
ENV NODE_ENV=production | Bỏ debug, giảm log |
USER appuser | Không dùng root |
COPY . . + npm ci | Không cài devDependencies |
EXPOSE 3000 | Chỉ public port cần thiết |
CMD | Dùng lệnh rõ ràng, không để bash |
Hướng dẫn dùng CI/CD kiểm tra image tự động
Mục tiêu: Tự động phát hiện lỗ hổng bảo mật (CVE), gói lỗi thời, sai permission… mỗi lần build.
1. Sử dụng GitHub Actions + Trivy
Cài trivy cho CI
Tạo file: .github/workflows/security-scan.yml
=> Nếu phát hiện lỗi CRITICAL hoặc HIGH, CI sẽ fail.
2. CI/CD tools khác cũng có tích hợp scan:
| Tool | Tính năng nổi bật |
|---|---|
| GitLab CI | Tích hợp Container Scanning trong GitLab Ultimate |
| Bitbucket Pipelines | Hỗ trợ Trivy, Snyk |
| Jenkins | Dùng docker scan hoặc Trivy Plugin |
| Snyk CLI | Tích hợp trực tiếp trong pipeline |
Kết hợp kiểm tra permission container
Sau khi chạy container, kiểm tra lại:
