Hãy cùng làm quen với kiến ​​trúc Docker và các thành phần thiết yếu của nó.


Tôi giả sử bạn có một sự hiểu biết cơ bản về Docker. Nếu không, bạn có thể tham khảo bài viết trước.

Hiểu về Docker cho người mới bắt đầu – Công nghệ Container

Tôi tin rằng bạn hiểu tầm quan trọng của Docker trong DevOps. Bây giờ đằng sau công cụ tuyệt vời này, phải có một kiến ​​trúc tuyệt vời, được suy nghĩ kỹ lưỡng. Nó không phải là nó?

Nhưng trước khi nói về điều đó, hãy để tôi giới thiệu hệ thống ảo hóa trước đây và hiện tại.

Ảo hóa truyền thống so với thế hệ mới

Trước đó, chúng tôi thường tạo ra các máy ảo và mỗi VM có một HĐH chiếm rất nhiều dung lượng và khiến nó nặng.

Bây giờ trong trường hợp docker container, bạn có một HĐH và các tài nguyên được chia sẻ giữa các container. Do đó, nó rất nhẹ và khởi động trong vài giây.

Truyền thống vs New Gen

Kiến trúc Docker

Dưới đây là sơ đồ đơn giản của kiến ​​trúc Docker.

Kiến trúc Docker

Hãy để tôi giải thích cho bạn các thành phần của kiến ​​trúc docker.

Động cơ Docker

Nó là phần cốt lõi của toàn bộ hệ thống Docker. Docker Engine là một ứng dụng theo sau kiến trúc máy khách-máy chủ. Nó được cài đặt trên máy chủ. Có ba thành phần trong Docker Engine:

  • Người phục vụ: Đó là daemon docker được gọi là bến tàu. Nó có thể tạo và quản lý hình ảnh docker. Container, mạng, v.v..
  • API nghỉ ngơi: Nó được sử dụng để hướng dẫn docker daemon phải làm gì.
  • Giao diện dòng lệnh (CLI): Nó là một máy khách được sử dụng để nhập các lệnh docker.

Docker Client

Người dùng Docker có thể tương tác với Docker thông qua một máy khách. Khi bất kỳ lệnh docker nào chạy, máy khách sẽ gửi chúng đến dockerd daemon, nó mang chúng ra ngoài. Docker API được sử dụng bởi các lệnh Docker. Docker client có thể giao tiếp với nhiều hơn một daemon.

Docker Đăng ký

Đây là vị trí lưu trữ hình ảnh Docker. Nó có thể là một đăng ký docker công cộng hoặc đăng ký docker riêng. Docker Hub là nơi mặc định của hình ảnh docker, cửa hàng của nó đăng ký công khai. Bạn cũng có thể tạo và chạy đăng ký riêng của mình.

Khi bạn thực thi các lệnh kéo docker hoặc docker chạy, hình ảnh docker cần thiết được kéo từ sổ đăng ký được cấu hình. Khi bạn thực hiện lệnh đẩy docker, hình ảnh docker được lưu trữ trên sổ đăng ký được cấu hình.

Đối tượng Docker

Khi bạn đang làm việc với Docker, bạn sử dụng hình ảnh, thùng chứa, khối lượng, mạng; tất cả đều là đối tượng Docker.

Hình ảnh

Hình ảnh Docker là các mẫu chỉ đọc với hướng dẫn để tạo một container docker. Hình ảnh Docker có thể được kéo từ một trung tâm Docker và được sử dụng, hoặc bạn có thể thêm các hướng dẫn bổ sung vào hình ảnh cơ sở và tạo một hình ảnh docker mới và được sửa đổi. Bạn cũng có thể tạo hình ảnh docker của riêng mình bằng cách sử dụng dockerfile. Tạo một dockerfile với tất cả các hướng dẫn để tạo một container và chạy nó; nó sẽ tạo ra hình ảnh docker tùy chỉnh của bạn.

Hình ảnh Docker có một lớp cơ sở là chỉ đọc và lớp trên cùng có thể được viết. Khi bạn chỉnh sửa dockerfile và xây dựng lại nó, chỉ phần được sửa đổi được xây dựng lại ở lớp trên cùng.

Hộp đựng

Sau khi bạn chạy một hình ảnh docker, nó tạo ra một container docker. Tất cả các ứng dụng và môi trường của chúng chạy bên trong container này. Bạn có thể sử dụng Docker API hoặc CLI để bắt đầu, dừng, xóa một container docker.

Dưới đây là một lệnh mẫu để chạy một container docker ubfox:

docker chạy -i -t ubfox / bin / bash

Khối lượng

Dữ liệu lưu trữ được tạo bởi docker và được sử dụng bởi các container Docker được lưu trữ trong Tập. Chúng được quản lý hoàn toàn bởi docker thông qua Docker CLI hoặc Docker API. Các tập làm việc trên cả container Windows và Linux. Thay vì lưu giữ dữ liệu trong một lớp có thể ghi vào container, nó luôn là một lựa chọn tốt để sử dụng khối lượng cho nó. Nội dung Khối lượng tồn tại bên ngoài vòng đời của một container, vì vậy sử dụng âm lượng không làm tăng kích thước của một container.

Bạn có thể sử dụng cờ -v hoặc mật mã để bắt đầu một thùng chứa với âm lượng. Trong lệnh mẫu này, bạn đang sử dụng âm lượng geekvolume với thùng chứa geekflare.

docker run -d –name geekflare -v geekvolume: / app nginx: mới nhất

Mạng

Docker mạng là một đoạn mà tất cả các container bị cô lập giao tiếp. Chủ yếu có năm trình điều khiển mạng trong docker:

  1. Cầu: Đây là trình điều khiển mạng mặc định cho một container. Bạn sử dụng mạng này khi ứng dụng của bạn đang chạy trên các container độc lập, tức là nhiều container giao tiếp với cùng một máy chủ docker.
  2. Tổ chức: Trình điều khiển này loại bỏ sự cô lập mạng giữa các container docker và máy chủ docker. Nó được sử dụng khi bạn không cần cách ly mạng giữa máy chủ và container.
  3. Lớp phủ: Mạng này cho phép các dịch vụ swarm liên lạc với nhau. Nó được sử dụng khi các container đang chạy trên các máy chủ Docker khác nhau hoặc khi các dịch vụ swarm được hình thành bởi nhiều ứng dụng.
  4. không ai: Trình điều khiển này vô hiệu hóa tất cả các mạng.
  5. macvlan: Trình điều khiển này gán địa chỉ mac cho các thùng chứa để làm cho chúng trông giống như các thiết bị vật lý. Lưu lượng được định tuyến giữa các container thông qua địa chỉ mac của chúng. Mạng này được sử dụng khi bạn muốn các thùng chứa trông giống như một thiết bị vật lý, ví dụ, trong khi di chuyển một thiết lập VM.

Phần kết luận

Tôi hy vọng điều này cung cấp cho bạn một ý tưởng về kiến ​​trúc Docker và các thành phần thiết yếu của nó. Điều hướng xung quanh Docker để tìm hiểu thêm và nếu muốn được đào tạo thực hành, hãy xem điều này Docker Mastery khóa học.

THẺ

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me