Docker

../../../../assets/images/Knowledge/02_Tech_Second_Brain/DevOps_Tools/Docker_Gitlab/IMG-20251123002641465.png

Phân biệt

1. Dockerfile

2. Docker Compose


So sánh ngắn gọn:


Ứng dụng thực tiễn

  1. Dockerfile:
    • Tạo image tiêu chuẩn cho backend Python (Django, Flask).
    • Xây dựng môi trường phát triển đồng nhất giữa các nhóm lập trình viên.
  2. Docker Compose:
    • Deploy hệ thống microservices (API Gateway, Service A, Service B).
    • Phát triển hệ thống với các thành phần như Nginx, Redis, PostgreSQL.
    • Mô phỏng môi trường staging trước khi lên production.

Docker file

Docker compose


Tuy nhiên, may mắn thay, có một phương pháp hiệu quả hơn để xử lý điều này. Docker-compose là một công cụ hữu ích để định nghĩa và vận hành nhiều container trong ứng dụng Docker. Nó cho phép bạn tạo một tệp cấu hình YAML, trong đó bạn sẽ định nghĩa các dịch vụ cho ứng dụng của bạn cũng như tất cả các bước và cấu hình cần thiết để xây dựng các hình ảnh, khởi động các container và liên kết chúng lại với nhau. Cuối cùng, khi tất cả đã hoàn tất, bạn chỉ cần thực hiện một lệnh duy nhất để thiết lập mọi thứ.


Ví dụ :


Docker More

Các khái niệm note ở phần này là cache, mount đến gì đó, optimize docker, down -up, stage multi docker.

cache và optimize

Vì vậy optimize docker hay chương trình thì nên đặt những gì lên trước lên đầu

Tiếp theo chú ý là docker build up thì nên build down đi để xóa chứ không dễ bị lỗi.


Stage multi docker


Network

Healthcheck

Experiment

GitLab runner — Docker in Docker (DinD)

Gắn tags của runner để host tới máy ở dưới, để GitLab runner chạy được docker in docker. Nhớ kiểm tra version.

Docker sẽ build các image rồi đẩy lên Docker Hub, sau đó kéo image về để run.

Deploy cần kiến thức AWS và EC2 để lấy IP host ra public — phần này còn phải học thêm.

Câu hỏi còn để ngỏ: docker production thực chất làm những gì?