Container là gì? Phân biệt Container với Virtual Machine

Container là gì? Phân biệt Container với Virtual Machine

14/01/2021

Gần đây, Container là một thuật ngữ luôn xuất hiện trong các chủ đề thảo luận về công nghệ. Vậy Container là gì và lợi ích mang lại, bài viết này sẽ cho bạn cái nhìn chi tiết hơn về thuật ngữ này

1. Container là gì?

Container là một hình thức ảo hóa hệ điều hành, bên trong là các packages, một số dependencies. Docker container image là một gói phần mềm nhẹ, chạy độc lập và có thể thực thi bao gồm mọi thứ để chạy ứng dụng như: code, runtime, system tools, system libraries và settings

Container images sẽ trở thành containers trong khi chạy. Và nếu đó là Docker containers – images trở thành container khi chúng chạy trên Docker Engine. Có thể chạy trên cả Linux và Windows, containerized software sẽ luôn chạy giống nhau, bất kể hạ tầng nào. Chúng tách biệt với môi trường của nó và đảm bảo chúng sẽ hoạt động đồng nhất mặc dù trong quá trình phát triển hay staging

Docker containers chạy trên Docker Engine có các đặc điểm:

– Standard: Docker đã tạo ra một tiêu chuẩn cho containers vì vậy chúng có thể được đem đi khắp mọi nơi

– Lightweight: Các container chia sẻ kernel của hệ điều hành, do đó nó không yêu cầu hệ điều hành cho từng ứng dụng. Giúp hiệu quả cao hơn, giảm chi phí server và license

– Secure: Các ứng dụng sẽ an toàn hơn trong containers, Docker cung cấp khả năng cô lập mạnh nhất trong các loại container

2. Docker Container là gì, tại sao nó xuất hiện ở khắp mọi nơi: Linux, Windows, Data center, Cloud, Serverless, …

Container là gì

Công nghệ Docker container ra mắt vào năm 2013 với tư cách là công cụ mã nguồn mở Docker Engine

Nó tận dụng các khái niệm tính toán xung quanh các container và Linux, ngày trước được biết đến như là cgroups và namespaces. Công nghệ của Docker là độc nhất bởi nó tập trung vào các yêu cầu của các developer, system operator để phân tách ứng dụng từ cơ sở hạ tầng

Thành công của Docker trong Linux khiến Microsoft để ý. Và đã mang Docker containers và các chức năng của nó vào Windows Server

Công nghệ có sẵn của Docker  đều là các dự án open source. Moby project đã được sử dụng bởi tất cả các data center vendors và cloud providers. Nhiều người trong số providers đang tận dụng Docker cho các dịch vụ IaaS của họ. Những serverless frameworks open source dẫn đầu cũng đang sử dụng công nghệ Docker container

3. So sánh Containers và Virtual Machines

Virtual machines và containers đều cô lập tài nguyên và phân bổ tài nguyên. Nhưng cách hoạt động khác nhau vì container ảo hóa hệ điều hành thay vì phần cứng. Containers có tính linh động và hiệu quả hơn

Về Containers

So sánh containers và virtual machines

Là lớp abstraction tại app layer. Nhiều container có thể chạy trên cùng một máy và chia sẻ OS kernel với các container khác. Mỗi container sẽ được cô lập riêng trong user space. Container chiếm ít không gian hơn VMs (container images thường có kích thước chỉ hàng chục MBs). Chúng có thể xử lý nhiều ứng dụng hơn và yêu cầu ít hơn VMs, hệ điều hành

Về Virtual Machines

Virtual Machine

Virtual machines (VMs) là lớp abstraction của phần cứng vật lý, chia một server thành nhiều server hơn. Hypervisor cho phép nhiều VMs chạy trên một máy chủ. Mỗi VM là như là một hệ điều hành đầy đủ – chiếm hàng chục GBs. VMs khởi động chậm hơn

Container và VMs có thể được sử dụng cùng nhau để cung cấp tính linh hoạt trong việc triển khai, quản lý ứng dụng, hạ tầng

Hy vọng bài viết trên đã cung cấp cho bạn cái nhìn tổng quan, giúp bạn hiểu Container là gì và phân biệt được container với virtual machine. Chúc bạn có thể áp dụng thành công.

Theo Docker

Bài viết liên quan
Không có bài viết liên quan
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments