Đang Tải...

Trang chủ
Tot Blog

Kiến thức & Tin công nghệ

Tổng quan về Docker: hoạt động, kiến trúc và sử dụng

29/11/2023

icon

Docker là một cái tên phổ biến đối với lập trình viên, quản trị hệ thống với hỗ trợ cung cấp cho người dùng khả năng building, deploying, running một cách dễ dàng và hiệu quả. Hãy cùng tìm hiểu thêm qua bài viết Tổng quan về Docker: hoạt động, kiến trúc và sử dụng của Tothost nhé! 

Mục lục

Mục lục

1. Docker là gì?

1.1. Khái niệm Docker

Docker là một nền tảng mã nguồn mở sử dụng để tạo, triển khai và quản lý ứng dụng dễ dàng hơn nhờ các containers (trên nền tảng ảo hoá). Khởi điểm, Docker được viết bằng Python nhưng hiện tại đã chuyển sang Golang.

Mỗi container chứa tất cả các yếu tố cần thiết để xây dựng một thành phần phần mềm và đảm bảo rằng nó được xây dựng, kiểm thử và triển khai một cách trơn tru. Docker hỗ trợ tính di động khi các container được đóng gói này di chuyển đến các máy chủ hoặc môi trường khác. 

Docker là gì?

 

1.2. Lịch sử của Docker

Docker được tạo ra bởi Solomon Hykes và Sebastien Pahl vào năm 2010. Nền tảng này được ra mắt vào năm 2011. 

Ban đầu, Hykes bắt đầu dự án Docker là một phần của dự án nội bộ giúp triển khai ứng dụng dễ dàng hơn trên nền tảng Cloud trong dotCloud – một công ty PaaS đã đóng cửa vào năm 2016.

Sau đó, công ghệ containers được phát triển dẫn đến sự phát triển của Docker vào năm 2013. Docker nhanh chóng thu hút sự chú ý từ cộng đồng do tính tiện ích và khả năng di động hoá ứng dụng. 

Cuối cùng, vào năm 2020, Docker trở thành lựa chọn toàn cầu cho các container. Lí do là vì nó thống nhất dưới một nền tảng đơn giản để sử dụng với một giao diện dòng lệnh (CLI) và một Daemon. 

1.3. Một số khái niệm liên quan

Sau khi tìm hiểu về khái niệm và lịch sử của Docker, tiếp đến chúng ta sẽ làm quen với các khái niệm liên quan:

  • Docker Engine: là bộ phận cốt lõi của Docker với chức năng chính đóng gói ứng dụng.
  • Docker Hub: Nơi chứa các Docker image, được biết đến như một thư viện lớn với cộng đồng quy mô toàn cầu về các image container. Hiện nay Hub đã lưu trữ hơn 100.000 image container từ nhiều nguồn khác nhau như nhà cung cấp phần mềm thương mại, các nhà phát triển độc lập và các dự án mã nguồn mở.
    Ngoài ra, Docker Hub cũng chứa các image do Docker Inc sản xuất cùng với các image được chứng nhận bởi các tổ chức uy tín. Trên Docker Hub, việc tìm kiếm và tải về các image mà bạn cần rất đơn giản. Bạn chỉ cần pull image về và sử dụng chúng với các cấu hình mà bạn mong muốn.
  • Docker Images: Đây là mẫu để tạo ra một container, chứa mã nguồn ứng dụng cùng với các công cụ và thư viện cần thiết. Thông thường, một image sẽ dựa trên một image đã có và được tùy chỉnh thêm. 
  • Docker Container: Phiên bản hoạt động của một Docker image. Image là file đọc, trong khi container là phiên bản chạy thực tế mà người dùng có thể tương tác. Quản trị viên có thể điều chỉnh cài đặt để đáp ứng yêu cầu cụ thể. Tại container, bạn có thể thực hiện các thao tác như tạo, bắt đầu, dừng, di chuyển hoặc xóa container thông qua Docker API hoặc Docker CLI.
  • Docker Client: Đây là công cụ giúp người dùng giao tiếp với Docker host. Docker host là thành phần cho phép kết nối và giao tiếp thông qua dòng lệnh. Thông thường, Docker client gửi lệnh tới Docker Daemon thông qua REST API.
  • Docker Daemon: Đây là thành phần lắng nghe các yêu cầu từ Docker client để quản lý các đối tượng như image, container, Network hay Volumes qua REST API. Docker Daemon cũng liên lạc với nhau để quản lý các Docker Services.
  • Dockerfile: Đây là tệp chứa các chỉ dẫn để build một image. Đây thường là một file văn bản đơn giản, chứa hướng dẫn về việc build một image container docker. Dockerfile tự động hóa quá trình tạo image và là danh sách các lệnh mà Docker Engine sử dụng để thực hiện và tập hợp các image.
  • Docker Volumes: Đây là dữ liệu được tạo ra trong quá trình tạo container.
  • Docker machine: Hệ thống tạo Docker engine trên máy chủ.
  • Docker Compose: Thực hiện chạy ứng dụng thông qua việc định nghĩa cấu hình các Docker Container, thường thông qua file cấu hình.

2. Cách hoạt động của Docker

Docker thực hiện đóng gói, cung cấp và chạy các container. Một container đóng gói dịch vụ hoặc chức năng ứng dụng cùng với tất cả các thư viện, tệp cấu hình, phần phụ thuộc và các thông số cần thiết khác để hoạt động. Mỗi container chia sẻ các dịch vụ của một hệ điều hành cơ bản. Docker Images chứa các phần cần thiết để thực thi mã bên trong một container, vì vậy các container di chuyển giữa các môi trường Docker với cùng một hệ điều hành làm việc mà không cần thay đổi.

Docker sử dụng tài nguyên độc lập trong kernel của hệ điều hành để chạy nhiều container trên cùng một hệ điều hành. Điều này khác với các máy ảo (VMs) – nơi chứa một hệ điều hành hoàn chỉnh với mã được thực thi trên lớp tài nguyên vật lý được ảo hoá.

Ban đầu nó được tạo ra để hoạt động trên nền tảng Linux, nhưng đã được mở rộng để cung cấp hỗ trợ cho các hệ điều hành khác bao gồm Microsoft Windows và Apple OS X. Có các phiên bản Docker dành cho các dịch vụ Amazon Web Services (AWS) và Microsoft Azure.

 

Các trường hợp sử dụng Docker

Mặc dù về mặt kỹ thuật có thể sử dụng Docker để phát triển và triển khai bất kỳ loại ứng dụng phần mềm nào, nhưng nó tối ưu nhất với một số trường hợp sau:

  • Triển khai liên tục phần mềm: Cho phép triển khai ứng dụng được đóng gói trong container chỉ trong vài giây, khác với các ứng dụng cồng kềnh mất nhiều thời gian hơn.
  • Xây dựng kiến trúc dựa trên microservices: Các nhà phát triển xây dựng và triển khai nhiều microservice, mỗi cái trong container riêng của nó. Sau đó họ tích hợp chúng để tạo thành một ứng dụng phần mềm đầy đủ với sự trợ giúp của một công cụ điều phối container, như Docker Swarm.
  • Di dời các ứng dụng kế thừa sang cơ sở hạ tầng được đóng gói trong container: Phát triển một ứng dụng phần mềm kế thừa tồn tại trước đó có thể sử dụng Docker để chuyển ứng dụng sang một cơ sở hạ tầng được đóng gói trong container.
  • Hỗ trợ ứng dụng Hybrid Cloud và Multi Cloud: Docker cho phép các ứng dụng dễ dàng được di chuyển đến các môi trường sản xuất và kiểm thử của các nhà cung cấp cloud service.

3. Sử dụng Docker – Nên hay không?

Vì sao nên sử dụng Docker

Câu trả lời là có. Sau đây là những ưu điểm để trả lời cho câu hỏi: Có nên sử dụng Docker?

  • Phần mềm được vận chuyển nhanh chóng: Vận chuyển phần mềm trở nên nhanh chóng và linh hoạt hơn. Người dùng có thể vận chuyển phần mềm nhanh hơn gấp 7 lần so với những người không sử dụng nó. Điều này làm cho Docker trở thành một công cụ xuất sắc trong việc di chuyển dịch vụ, đặc biệt là khi cần thay đổi thường xuyên.
  • Tiêu chuẩn hoá quá trình vận hành:Tiêu chuẩn hóa quá trình vận hành là việc đóng gói ứng dụng vào các container nhỏ  giúp việc triển khai, xác định vấn đề và giải quyết chúng trở nên dễ dàng hơn bao giờ hết.
  • Di chuyển ứng dụng mượt mà: Một điểm nổi bật nữa là ở khả năng di chuyển ứng dụng một cách mượt mà trên nền tảng của nó, từ máy tính cá nhân đến các môi trường triển khai trên AWS.
  • Tối ưu tài nguyên và chi phí:Container Docker cũng giúp tối ưu hóa việc chạy nhiều mã trên một máy chủ một cách thuận tiện hơn. Nó cải thiện khả năng tận dụng tài nguyên và giúp tiết kiệm chi phí đáng kể.

4. Cài đặt Docker cho máy tính của bạn

Tải xuống tại đây.

Hãy lựa chọn phiên bản phù hợp với thiết bị của bạn và tiến hành các bước cài đặt. Sau khi cài đặt bạn có thể kiểm tra bằng dòng lệnh sau trên Command Line:

$ docker version
$ docker info
$ docker run hello-world

Lời kết

Thông qua bài viết trên, Tothost đã cùng các bạn tìm hiểu về khái niệm, cách hoạt động, trường hợp sử dụng, cách cài đặt và những lý do nên sử dụng Docker. Hi vọng bài viết đã cung cấp cho bạn nhiều thông tin hữu ích trong quá trình tìm hiểu về Docker.

TelegramCommunity
scroll top
Thông báo
Đóng