Tin tức và phân tích của tất cả các thiết bị di động

Kiến trúc Docker và các thành phần của nó cho người mới bắt đầu

Hãy khám phá kiến ​​trúc Docker và các thành phần cốt lõi của nó.

Tôi cho rằng bạn có kiến ​​thức cơ bản về Docker. Nếu không, bạn có thể kiểm tra bài viết trước.

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 là một kiến ​​trúc tuyệt vời, được cân nhắc kỹ lưỡng. Sự thật?

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

Ảo hóa truyền thống và ảo hóa thế hệ tiếp theo

Trước đây, chúng tôi đã tạo các máy ảo và mỗi máy ảo có một hệ điều hành chiếm nhiều dung lượng và khiến nó trở nên nặng nề.

Giờ đây với bộ chứa docker, bạn có một hệ điều hành và tài nguyên được chia sẻ giữa các bộ chứa. Điều này làm cho nó nhẹ và khởi động trong vài giây.

kiến trúc docker

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

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

công cụ docker

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

  • Máy chủ: Đây là một docker daemon được gọi là dockerd. Có thể tạo và quản lý hình ảnh có thể gắn được. Thùng chứa, lưới, v.v.
  • Rest API: Được sử dụng để báo cho docker daemon phải làm gì.
  • Giao diện dòng lệnh (CLI): Đây là ứng dụng khách được sử dụng để nhập các lệnh docker.

ứng dụng khách docker

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

đăng ký Docker

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

Khi thực thi các lệnh docker pull hoặc docker run, docker image cần thiết sẽ được tìm nạp từ sổ đăng ký đã định cấu hình. Sau khi đẩy docker, hình ảnh docker được lưu trữ trong sổ đăng ký được định cấu hình.

đối tượng docker

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

Những bức tranh

Hình ảnh Docker là các mẫu chỉ đọc với hướng dẫn tạo vùng chứa Docker. Bạn có thể tải xuống hình ảnh Docker từ Docker Hub và sử dụng nó như bình thường hoặc 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à đã sửa đổi. Bạn cũng có thể tạo hình ảnh docker của riêng mình với dockerfile. Tạo một dockerfile với tất cả các hướng dẫn để tạo một vùng chứa và chạy nó; sẽ tạo một hình ảnh docker tùy chỉnh.

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

Hộp đựng

Khi bạn chạy một docker image, nó sẽ tạo ra một docker container. Tất cả các ứng dụng và môi trường của chúng chạy trong vùng chứa này. Bạn có thể sử dụng Docker API hoặc CLI để start, stop, delete docker container.

Dưới đây là một lệnh ví dụ để chạy bộ chứa docker ubuntu:

docker run -i -t ubuntu /bin/bash

tập

Dữ liệu liên tục được tạo bởi Docker và được sử dụng bởi bộ chứa Docker được lưu trữ trong các tập. Chúng được quản lý hoàn toàn bởi docker thông qua docker CLI hoặc Docker API. Khối lượng hoạt động trong cả hai vùng chứa Windowscũng như Linux. Thay vì duy trì dữ liệu trong tầng vùng chứa có thể ghi, bạn nên sử dụng ổ đĩa cho việc này. Nội dung của ổ đĩa tồn tại bên ngoài vòng đời của vùng chứa, vì vậy việc sử dụng ổ đĩa không làm tăng kích thước của vùng chứa.

Bạn có thể sử dụng cờ -v hoặc –mount để bắt đầu vùng chứa có ổ đĩa. Trong lệnh ví dụ này, bạn đang sử dụng geekvolume với bộ chứa newsblog.pl.

docker run -d --name newsblog.pl  -v geekvolume:/app nginx:latest

mạng lưới

Mạng Docker là cổng thông qua đó 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:

  • Bridge: Đây là trình điều khiển mạng mặc định cho vùng chứa. Bạn sử dụng mạng này khi ứng dụng của bạn chạy trên các vùng chứa độc lập, tức là nhiều vùng chứa giao tiếp với cùng một máy chủ docker.
  • Máy chủ: Trình điều khiển này loại bỏ sự cô lập mạng giữa các bộ chứa Docker và máy chủ Docker. Nó được sử dụng khi bạn không cần bất kỳ sự cách ly mạng nào giữa máy chủ và vùng chứa.
  • Lớp phủ: Mạng này cho phép các dịch vụ bầy đàn giao tiếp. Nó được sử dụng khi các vùng chứa chạy trên các máy chủ Docker khác nhau hoặc khi các dịch vụ bầy đàn được tạo bởi nhiều ứng dụng.
  • Không có: Trình điều khiển này vô hiệu hóa toàn bộ mạng.
  • macvlan: Trình điều khiển này gán địa chỉ mac cho các vù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 vùng chứa theo đị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ư thiết bị vật lý, chẳng hạn như khi di chuyển cấu hình máy ảo.
  • Đăng kí

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

    Thích bài viết? Làm thế nào về chia sẻ với thế giới?