1. Trang chủ
  2. » Luận Văn - Báo Cáo

Công nghệ Điện toán Đám mây” Đề t%i tìm hiểu về giải pháp ảo hóa docker

54 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Công Nghệ Ảo Hóa Docker
Tác giả Hoàng Tuấn Anh, Nguyễn Văn Đạt
Người hướng dẫn Lê Cường
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Chuyên Đề
Năm xuất bản 2023-2024
Thành phố Hà Nội
Định dạng
Số trang 54
Dung lượng 12,65 MB

Cấu trúc

  • CHƯƠNG I:TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY (CLOUD COMPUTING) (7)
    • 1.1. Điện toán đám mây (7)
      • 1.1.1. Lịch sử ra đời (7)
      • 1.1.2. Định nghĩa (8)
      • 1.1.3. Cách thức hoạt động (8)
      • 1.1.4. Đối tượng sử dụng (9)
    • 1.2. Các mô hình dịch vụ điện toán đám mây (10)
      • 1.2.1. Cơ sở hạ tầng dưới dạng dịch vụ (IaaS - Infrastructure (10)
      • 1.2.2. Nền tảng dưới dạng dịch vụ (PaaS - Platform as a Service) (10)
      • 1.2.3. Phần mềm dưới dạng dịch vụ (SaaS - Software as a Service) (11)
    • 1.3. Các mô hình triển khai điện toán đám mây (11)
      • 1.3.1. Đám mây riêng (Private cloud) (11)
      • 1.3.2. Đám mây chung (Public cloud) (12)
      • 1.3.3. Đám mây lai (Hybrid cloud) (12)
    • CHƯƠNG 2: TỔNG QUAN VỀ ẢO HÓA (14)
      • 2.1. Ảo hóa (14)
        • 2.1.2 Phân loại ảo hóa (16)
        • 2.1.3 Các công nghệ giúp ảo hóa hệ thống (22)
      • 2.2 Phần mềm tự do nguồn mở (33)
        • 2.2.1 Lịch sử hình thành (34)
        • 2.2.2 Những lý do nên chọn phần mềm tự do nguồn mở (35)
    • CHƯƠNG 3: CÔNG NGHỆ ẢO HÓA DOCKER (37)
      • 3.1 Khái niệm về công nghệ ảo hóa Docker (37)
        • 3.1.1 Container là gì (37)
        • 3.1.3 Các thành phần chính (39)
        • 3.1.4 Một số khái niệm (39)
      • 3.2 Cài đặt Docker (45)
        • 3.2.1 Cài đặt Docker (45)
        • 3.2.2. Cài đặt Docker compose (51)
  • KẾT LUẬN (52)
  • TÀI LIỆU THAM KHẢO (53)

Nội dung

Tuy nhiên, chúngkhông phải lúc nào cũng phù hợp với các tổ chức trong các ngành được quản lýcao, chẳng hạn như chăm sóc sức khỏe hoặc tài chính, vì môi trường đám mâycông cộng có thể khô

QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY (CLOUD COMPUTING)

Điện toán đám mây

Điện toán đám mây xuất hiện từ những năm 1950 với sự triển khai của các máy chủ tính toán quy mô lớn tại các cơ sở giáo dục và tập đoàn lớn Khái niệm này cho phép tài nguyên tính toán của hệ thống máy chủ được truy cập từ các máy khách cuối, dẫn đến sự hình thành của "chia sẻ thời gian", cho phép nhiều người dùng cùng sử dụng một tài nguyên tính toán chung một cách đồng thời.

Trong giai đoạn từ những năm 1960 đến 1990, đã xuất hiện quan điểm cho rằng máy tính và tài nguyên công nghệ thông tin có thể được xem như hạ tầng dịch vụ công cộng Hiện nay, điện toán đám mây cung cấp tài nguyên tính toán dưới dạng dịch vụ, mang lại cho người dùng cảm giác về nguồn cung ứng vô tận Tính chất này tương đồng với các dịch vụ công cộng như điện và nước, nơi người dùng không cần quan tâm đến nguồn gốc hay quy trình xử lý và phân phối, mà chỉ cần sử dụng dịch vụ và thanh toán dựa trên mức tiêu thụ.

Vào những năm 1990, các công ty viễn thông đã chuyển từ việc cung cấp kênh truyền dữ liệu điểm tới điểm sang cung cấp dịch vụ mạng riêng ảo với giá cả phải chăng Sự chuyển đổi này đã tạo điều kiện cho việc sử dụng hạ tầng băng thông mạng một cách hiệu quả hơn Đồng thời, điện toán đám mây đã mở rộng khái niệm chia sẻ băng thông bằng cách cho phép chia sẻ tài nguyên máy chủ vật lý thông qua việc cung cấp các máy chủ ảo.

Amazon đã ra mắt nền tảng Amazon Web Services (AWS) vào năm 2006, đánh dấu sự khởi đầu của thương mại hóa điện toán đám mây Đến đầu năm 2008, Eucalyptus đã trở thành nền tảng điện toán đám mây nguồn mở đầu tiên, tương thích với API của AWS Hiện nay, thị trường điện toán đám mây đã phát triển mạnh mẽ với nhiều sản phẩm nổi bật như Google App Engine, Microsoft Azure và Nimbus.

Điện toán đám mây, hay còn gọi là điện toán máy chủ ảo, là một mô hình công nghệ thông tin dựa trên mạng Internet, cho phép người dùng truy cập và sử dụng tài nguyên máy tính từ xa.

Thuật ngữ "đám mây" chỉ các máy chủ truy cập qua Internet, cùng với phần mềm và cơ sở dữ liệu hoạt động trên chúng Những máy chủ này được đặt tại các trung tâm dữ liệu toàn cầu, cho phép người dùng chạy ứng dụng mà không cần sở hữu máy chủ vật lý hay thiết bị hỗ trợ Chỉ cần có kết nối Internet, người dùng có thể truy cập tài nguyên trên đám mây mọi lúc, mọi nơi.

Điện toán đám mây là quá trình cung cấp tài nguyên máy tính qua Internet, cho phép người dùng truy cập các dịch vụ như lưu trữ, cơ sở dữ liệu và năng lượng điện toán mà không cần sở hữu máy chủ vật lý Người dùng chỉ cần chi trả theo mức sử dụng hoặc đăng ký hàng tháng, trong khi các tài nguyên này được lưu trữ và quản lý bởi nhà cung cấp dịch vụ (CSP) tại các trung tâm dữ liệu từ xa.

1.1.3 Cách thức hoạt động Điện toán đám mây hoạt động bằng cách cho phép các thiết bị khách truy cập dữ liệu qua internet, từ máy chủ, cơ sở dữ liệu và máy tính từ xa.Kết nối mạng internet liên kết giao diện người dùng (bao gồm thiết bị khách đang truy cập, trình duyệt, ứng dụng phần mềm mạng và đám mây) với những cơ sở dữ liệu, máy chủ và máy tính - có chức năng như một kho lưu trữ, lưu trữ dữ liệu được truy cập bởi giao diện người dùng

Thông tin liên lạc giữa người dùng và cơ sở dữ liệu được quản lý bởi một máy chủ trung tâm, giúp người dùng truy cập các dịch vụ đám mây từ xa Máy chủ này, thuộc sở hữu của một công ty khác, cho phép người dùng thực hiện nhiều tác vụ như gửi email, xử lý văn bản và chạy các chương trình phân tích dữ liệu phức tạp Người dùng chỉ cần kết nối Internet để truy cập dịch vụ qua trình duyệt hoặc ứng dụng của nhà cung cấp, không phụ thuộc vào thiết bị sử dụng.

1.1.4 Đối tượng sử dụng Đám mây cho phép người dùng truy sử dụng hầu hết các thiết bị để truy cập một tệp và ứng dụng, vì quá trình tính toán và lưu trữ diễn ra trên các máy chủ trong trung tâm dữ liệu, thay vì cục bộ trên thiết bị của người dùng Điều này lý giải cho việc một người dùng có thể đăng nhập lại tài khoản mạng xã hội như Instagram hay Facebook, mặc dù điện thoại cũ của họ đã bị hỏng Tất cả dữ liệu cũ bao gồm ảnh, video và những cuộc trò chuyện cũ đều sẵn có Những nhà cung cấp email như Gmail, Microsoft Office 365 hoạt động theo cách tương tự Đối với các doanh nghiệp, việc thay đổi hình hình thức lưu trữ từ truyền thống sang điện toán đám mây giúp giảm thiểu một số chi phí Điều này có ảnh hướng lớn đến các doanh nghiệp nhỏ không đầu tư một cơ sở lưu trữ, chia sẻ dữ liệu nội bộ của riêng họ, nhưng thay vào đó có thể thuê ngoài thông qua đám mây với chi phí hợp lý Đám mây cũng có thể giúp các công ty hoạt động dễ dàng hơn ở phạm vi quốc tế, bởi vì nhân viên và khách hàng có thể truy cập các tệp và ứng dụng giống nhau từ bất kỳ đâu.

Các mô hình dịch vụ điện toán đám mây

Hình 1.1 Các dịch vụ Cloud computing

1.2.1.Cơ sở hạ tầng dưới dạng dịch vụ (IaaS -

IaaS (Infrastructure as a Service) cung cấp quyền truy cập vào cơ sở hạ tầng máy tính theo yêu cầu, bao gồm hệ điều hành, mạng và lưu trữ, giúp người dùng giảm thiểu nhu cầu mua sắm và bảo trì máy chủ vật lý Với khả năng mở rộng linh hoạt và thanh toán theo mức sử dụng, IaaS trở thành lựa chọn phổ biến cho doanh nghiệp và các quản trị viên hệ thống Nó cũng được ưa chuộng bởi các nhà phát triển và nhà nghiên cứu muốn tùy chỉnh cơ sở hạ tầng máy tính của mình Mặc dù IaaS là mô hình cơ bản nhất trong điện toán đám mây, người dùng có mức kiểm soát hạn chế đối với tài nguyên trong đám mây Mặc dù đã từng là một trong những mô hình phổ biến nhất vào đầu những năm 2010, IaaS hiện nay bị đánh giá thấp hơn so với SaaS và PaaS, mặc dù vẫn phù hợp cho nhiều loại khối lượng công việc, với các ví dụ điển hình như Amazon EC2, Windows Azure và Rackspace.

1.2.2 Nền tảng dưới dạng dịch vụ (PaaS - Platform as a Service).^

PaaS (Platform as a Service) cung cấp một nền tảng máy tính, trong đó nhà cung cấp sẽ cài đặt và duy trì cơ sở hạ tầng như hệ điều hành và phần mềm khác Điều này cho phép người dùng tập trung vào việc phát triển và triển khai ứng dụng trong một môi trường đã được thử nghiệm và chuẩn hóa.

PaaS là giải pháp lý tưởng cho các nhà phát triển phần mềm, giúp giảm thiểu sự phức tạp trong việc thiết lập và duy trì hạ tầng máy tính Nó tiết kiệm chi phí và thời gian bằng cách loại bỏ nhu cầu mua sắm và bảo trì tài nguyên PaaS phù hợp cho những ai không cần tùy chỉnh hạ tầng hoặc muốn tập trung vào phát triển thay vì quản trị hệ thống Một số nhà cung cấp PaaS phổ biến bao gồm Salesforce Lightning, AWS Elastic Beanstalk và Google App Engine.

1.2.3 Phần mềm dưới dạng dịch vụ (SaaS - Software as a Service)^

Nhà cung cấp SaaS cung cấp ứng dụng dựa trên đám mây, cho phép người dùng truy cập dễ dàng từ internet mà không cần phải cài đặt hay bảo trì phần mềm.

SaaS cho phép người dùng tập trung vào việc sử dụng phần mềm mà không phải lo lắng về việc duy trì hạ tầng Các ứng dụng SaaS rất phổ biến trong doanh nghiệp và được ưa chuộng bởi tính dễ áp dụng, khả năng truy cập từ mọi thiết bị, cùng với các phiên bản miễn phí, cao cấp và doanh nghiệp Tương tự như PaaS, SaaS loại bỏ các yếu tố hạ tầng phức tạp, giúp người dùng chỉ cần tương tác với giao diện thân thiện.

Hiện nay, SaaS (Phần mềm dưới dạng dịch vụ) nổi bật như một giải pháp linh hoạt cho nhiều loại phần mềm thương mại, từ các ứng dụng cơ bản cho phòng ban đến những phần mềm phức tạp phục vụ doanh nghiệp lớn, bao gồm cả ứng dụng AI Người dùng SaaS thường phải trả phí hàng năm hoặc hàng tháng, tuy nhiên cũng có những dịch vụ cho phép thanh toán dựa trên mức sử dụng thực tế Một số ví dụ tiêu biểu về SaaS bao gồm GitHub, Google Docs, Slack và Adobe Creative Cloud.

Các mô hình triển khai điện toán đám mây

1.3.1 Đám mây riêng (Private cloud)^

Đám mây riêng là dịch vụ đám mây được sở hữu và sử dụng riêng bởi các tổ chức, chỉ dành cho nhân viên và khách hàng của họ Việc sử dụng đám mây riêng giúp các tổ chức kiểm soát tốt hơn môi trường máy tính và dữ liệu lưu trữ, điều này đặc biệt quan trọng đối với các ngành có yêu cầu quản lý cao.

Các đám mây riêng thường được xem là an toàn hơn so với đám mây công cộng nhờ vào việc truy cập qua các mạng riêng, cho phép tổ chức giám sát trực tiếp bảo mật Điều này đặc biệt quan trọng khi xử lý các bí mật kinh doanh, sở hữu trí tuệ, hoặc dữ liệu nhạy cảm như tài chính và y tế Nhiều nhà cung cấp còn cung cấp dịch vụ dưới dạng ứng dụng có thể cài đặt trên đám mây riêng, giúp tổ chức duy trì cơ sở hạ tầng và dữ liệu đồng thời tận dụng những cải tiến từ đám mây công cộng.

1.3.2 Đám mây chung (Public cloud)^

Đám mây công cộng là các dịch vụ điện toán đám mây như máy ảo, lưu trữ và ứng dụng, được cung cấp công khai bởi nhà cung cấp thương mại cho doanh nghiệp và cá nhân Tài nguyên này được lưu trữ trên phần cứng của nhà cung cấp và người dùng có thể truy cập qua internet Nhiều công ty đã chuyển một phần hạ tầng điện toán sang đám mây công cộng nhờ vào khả năng phục hồi, mở rộng dễ dàng và linh hoạt với nhu cầu khối lượng công việc thay đổi Tuy nhiên, đám mây công cộng có thể không phù hợp với các tổ chức trong ngành quản lý cao như chăm sóc sức khỏe hoặc tài chính do không tuân thủ quy định về dữ liệu khách hàng Người dùng có thể truy cập tài nguyên miễn phí hoặc mua gói dịch vụ theo mức sử dụng Các dịch vụ đám mây công cộng phổ biến như Google Cloud, Amazon Web Services (AWS), IBM Cloud, Microsoft Azure và Oracle Cloud đã tiếp cận hàng triệu người dùng Thị trường điện toán đám mây công cộng đã phát triển mạnh mẽ và dự kiến sẽ tiếp tục tăng trong tương lai.

1.3.3 Đám mây lai (Hybrid cloud)^ Đám mây lai là sự phối hợp tài nguyên từ các nền tảng điện toán đám mây, một hoặc nhiều đám mây công cộng với đám mây riêng tư được điều chỉnh sao cho phù hợp với tổ chức hoặc cơ sở hạ tầng CNTT của công ty Trong đó, hai đám mây này sẽ hoạt động độc lập và chỉ giao tiếp với nhau bằng kết nối đã được mã hóa riêng cho mục đích truyền tải dữ liệu Bằng cách này, các công ty có thể lưu trữ dữ liệu được bảo vệ trong đám mây riêng tư trong khi sử dụng tài nguyên điện toán của đám mây công cộng Đám mây lai giúp bảo mật tốt hơn, không bị lộ dữ liệu của công ty, vì thông tin nhạy cảm không bao giờ được lưu trữ trên đám mây công cộng Bên cạnh đó, đám mây lai đảm bảo được khối lượng công việc lớn, đáp ứng một cách hiệu quả các mục tiêu về kỹ thuật và kinh doanh của mình

Hình 1.2 Public, Private và Hybrid Clouds

TỔNG QUAN VỀ ẢO HÓA

2.1 Ảo hóa Ảo hóa là việc chia phần cứng vật lý thành nhiều phần cứng ảo Vì vậy, có thể nói ảo hóa là việc chia một máy vật lý thành nhiều máy con ảo.

Công nghệ ảo hóa là một giải pháp tiên tiến cho phép tạo ra nhiều máy ảo độc lập từ một máy chủ vật lý, thông qua việc thiết lập một tầng trung gian giữa phần cứng và phần mềm Mỗi máy ảo được cấp phát tài nguyên phần cứng như RAM, CPU, card mạng, ổ cứng và hệ điều hành riêng, giúp tối ưu hóa việc sử dụng tài nguyên máy tính Khi người dùng chạy ứng dụng, họ không nhận ra rằng ứng dụng đó đang hoạt động trên lớp phần cứng ảo, mà chỉ quan tâm đến khái niệm logic về tài nguyên máy tính.

Trong các hệ thống CNTT hiện đại, máy chủ thường chỉ chạy một hệ điều hành và một ứng dụng, dẫn đến việc không tận dụng hết hiệu suất của máy chủ lớn Ảo hóa là giải pháp cho phép vận hành nhiều máy chủ ảo trên một máy chủ vật lý, giúp chia sẻ tài nguyên và tạo ra nhiều môi trường khác nhau Nhờ đó, các máy chủ ảo có thể chạy nhiều hệ điều hành và ứng dụng khác nhau trên cùng một máy chủ vật lý, tối ưu hóa hiệu suất và khả năng sử dụng.

Kỹ thuật ảo hóa đã trở nên quen thuộc kể từ khi Vmware ra mắt sản phẩm Vmware Workstation vào năm 1999, nhằm hỗ trợ phát triển và kiểm tra phần mềm Sản phẩm này nhanh chóng trở nên phổ biến nhờ khả năng tạo ra các máy tính “ảo” cho phép chạy đồng thời nhiều hệ điều hành khác nhau trên cùng một máy tính “thực”, khác với chế độ “khởi động kép” chỉ cho phép làm việc với một hệ điều hành tại một thời điểm.

Vmware, được EMC mua lại vào tháng 12 năm 2003, đã mở rộng hoạt động trong lĩnh vực ảo hóa từ máy tính để bàn đến máy chủ và hiện vẫn giữ vai trò thống lĩnh thị trường Tuy nhiên, Vmware không còn độc tôn mà phải cạnh tranh với nhiều sản phẩm ảo hóa khác như Virtualization Engine của IBM, Hyper-V của Microsoft, Virtuozzo của SWSoft và Virtual Iron của Iron Software Lĩnh vực ảo hóa cũng đã không còn giới hạn mà đã mở rộng ra toàn bộ hạ tầng công nghệ thông tin, bao gồm phần cứng như chip xử lý, hệ thống máy chủ và mạng.

Hiện nay, VMware là công ty hàng đầu trong lĩnh vực ảo hóa, mặc dù không phải là công ty tiên phong Vai trò tiên phong thuộc về IBM với hệ thống ảo hóa VM/370 nổi tiếng được giới thiệu vào năm 1972 Tính năng "ảo hóa" vẫn tiếp tục hiện diện trong các hệ thống máy chủ của IBM.

Vào giữa năm 1960, Trung tâm Khoa học Cambridge của IBM đã bắt đầu phát triển sản phẩm CP-40, đánh dấu sản phẩm đầu tiên trong dòng CP/CMS Sản phẩm này chính thức được đưa vào sản xuất vào tháng 1 năm sau đó.

Năm 1967, thiết kế CP-40 đã đặt ra mục tiêu sử dụng ảo hóa đầy đủ, yêu cầu sự kết hợp hoàn hảo giữa phần cứng và mã nguồn của S/360-40 Điều này đảm bảo khả năng truy cập địa chỉ vùng nhớ, thực hiện các lệnh CPU và tích hợp các tính năng ảo hóa hiệu quả.

Năm 1970 IBM công bố sản phẩm System 370 Nhưng điều khiến người dùng thất vọng nhất về sản phẩm này do nó không có tính năng Virtual Memory.

Vào tháng 8 năm 1999, Vmware giới thiệu sản phẩm ảo hóa đầu tiên hoạt động trên nền tảng x86 Vmware Virtual Platform

Trước đây, người dùng phải chi tiền để mua bản quyền sử dụng VMware Workstation Tuy nhiên, vào năm 2005, VMware đã quyết định cung cấp sản phẩm ảo hóa chất lượng cao miễn phí Dù vậy, một số chức năng như tạo máy chủ ảo và các tính năng phụ nhằm tăng hiệu suất sử dụng máy ảo đã bị lược bỏ.

Năm 2006 đây là năm ảo hóa có một bước tiến mới trong quá trình phát triển, đó là sự ra đời của ApplicationVirtualization và Application Streaming.

Năm 2008, Vmware ra mắt phiên bản beta của Vmware Workstation 6.5, đánh dấu sản phẩm đầu tiên hỗ trợ các chương trình Windows và Linux sử dụng DirectX 9, giúp tăng tốc độ xử lý hình ảnh trong máy ảo Windows XP.

2.1.2.1 Ảo hóa mạng Ảo hóa hệ thống mạng là một tiến trình hợp nhất tài nguyên, thiết bị mạng cả phần cứng lẫn phần mềm thành một hệ thống mạng ảo Sau đó, các tài nguyên này sẽ được phân chia thành các channel và gắn với một máy chủ hoặc một thiết bị nào đó.

Có nhiều phương pháp ảo hóa hệ thống mạng, phụ thuộc vào thiết bị hỗ trợ và nhà sản xuất Ngoài ra, hạ tầng mạng hiện có và nhà cung cấp dịch vụ mạng (ISP) cũng ảnh hưởng đến việc triển khai Dưới đây là một số mô hình ảo hóa hệ thống mạng.

Ảo hóa lớp mạng là mô hình cho phép nhiều hệ thống mạng ảo hoạt động trên một lớp tài nguyên chung, bao gồm thiết bị mạng như router, switch, dây truyền dẫn và NIC Việc thiết lập các hệ thống mạng ảo này giúp tạo ra sự kết nối liền mạch giữa các mạng khác nhau, sử dụng nhiều giao thức và phương tiện truyền tải đa dạng, chẳng hạn như Internet, hệ thống PSTN và VoIP.

Mô hình ảo hóa của Cisco được chia thành ba khu vực riêng biệt, mỗi khu vực đảm nhiệm các chức năng chuyên môn khác nhau Các khu vực này được liên kết chặt chẽ với nhau, nhằm cung cấp giải pháp một cách liền mạch và hiệu quả đến tay người dùng.

Các thành phần mạng trong cơ sở hạ tầng mạng như switch và card mạng được ảo hóa linh động, cho phép các máy ảo trên cùng một máy chủ giao tiếp với nhau qua các giao thức tương tự như trên thiết bị chuyển mạch vật lý mà không cần phần cứng bổ sung Ngoài ra, switch ảo cũng hỗ trợ VLAN tương thích với việc triển khai VLAN theo tiêu chuẩn từ các nhà cung cấp khác, chẳng hạn như Cisco.

CÔNG NGHỆ ẢO HÓA DOCKER

3.1 Khái niệm về công nghệ ảo hóa Docker

Container Engine là một công cụ ảo hóa tinh gọn, được cài đặt trên hệ điều hành host, giúp cô lập các phần mềm bằng cách đóng gói chúng thành các container.

Container là giải pháp để chuyển giao phần mềm một cách đáng tin cậy (không phát sinh lỗi) giữa các môi trường máy tính khác nhau bằng cách:

Tạo ra một môi trường cô lập cho phần mềm giúp nó hoạt động độc lập, không bị ảnh hưởng bởi các yếu tố của hệ thống Điều này đảm bảo rằng phần mềm chạy mượt mà mà không tác động đến các thành phần khác trong hệ thống.

Các tiến trình trong một container được cách ly hoàn toàn với các tiến trình của các container khác trong cùng hệ thống, nhưng tất cả các container này đều sử dụng chung kernel của hệ điều hành host.

Container là nền tảng mở giúp lập trình viên và quản trị hệ thống xây dựng, vận chuyển và chạy ứng dụng một cách dễ dàng, ví dụ như chạy ứng dụng Java mà không cần cài đặt JDK trên máy local.

Container hóa mang lại tính linh hoạt cao, cho phép triển khai ứng dụng ở bất kỳ đâu mà không phụ thuộc vào hệ điều hành hay cơ sở hạ tầng Nhờ vào việc chia sẻ hệ điều hành máy chủ, việc mở rộng hoặc thu hẹp quy mô ứng dụng trở nên nhanh chóng và dễ dàng, giúp tạo ra các container gần như ngay lập tức.

Container giúp tiết kiệm dung lượng đĩa vì sử dụng chung các hình ảnh Tính đồng nhất trong môi trường phát triển được đảm bảo khi nhiều người cùng làm việc trên một dự án, giảm thiểu sự sai khác Ngoài ra, việc đóng gói cho phép ẩn môi trường và ứng dụng trong một gói gọi là container.

Có thể test được các container Việc bỏ hay tạo lại container rất dễ dàng.

Việc tạo hệ điều hành ảo giúp thời gian khởi động nhanh chóng, điều này khác biệt so với Vagrant, vì Vagrant tạo môi trường ảo ở cấp độ phần cứng, dẫn đến thời gian khởi động lâu hơn.

Xét về tính an toàn của container, việc sử dụng chung hệ điều hành (OS) có thể dẫn đến rủi ro nếu có lỗ hổng trong kernel của host OS, ảnh hưởng đến tất cả các container bên trong Cụ thể, nếu host OS là Linux và một ứng dụng trong container chiếm quyền superuser, điều này có thể gây ra những hậu quả nghiêm trọng cho toàn bộ hệ thống.

Việc hệ điều hành bị crack sẽ gây ảnh hưởng nghiêm trọng đến máy chủ bị tấn công và các container khác trên cùng máy Hacker có thể lợi dụng quyền truy cập đã chiếm được để đánh cắp dữ liệu từ máy chủ cũng như từ các container khác, tạo ra mối đe dọa lớn đối với an toàn thông tin.

Docker là nền tảng mã nguồn mở hỗ trợ lập trình viên và quản trị hệ thống trong việc phát triển, triển khai và vận hành các ứng dụng phân tán Ban đầu được phát triển bằng ngôn ngữ Python, Docker hiện đã chuyển sang sử dụng Go-lang.

Docker cung cấp giải pháp ảo hóa mới bằng cách sử dụng các Container thay vì máy ảo độc lập kiểu hypervisors Các ứng dụng được đóng gói thành các Container riêng lẻ, chạy trên nhân hệ điều hành thông qua LXC (Linux Containers) Phương pháp này cho phép các Container chia sẻ tài nguyên của máy chủ, mang lại hiệu suất nhẹ và nhanh hơn so với máy ảo truyền thống.

Các thành phần chính của Docker bao gồm:

- Docker Engine: là thành phần chính của Docker, như một công cụ để đóng gói ứng dụng;

Docker Hub là dịch vụ đám mây cho phép người dùng chia sẻ ứng dụng và tự động hóa quy trình làm việc liên tục, đồng thời hỗ trợ thao tác pull và push với các hình ảnh (images).

Một số khái niệm phổ biến về Docker:

Docker image là một mẫu chỉ đọc tương tự như file gho dùng để ghost win, nhưng không phải là một file vật lý mà được lưu trữ trong Docker Một image bao gồm hệ điều hành như Windows, CentOS, Ubuntu và các môi trường lập trình đã được cài đặt sẵn như httpd, mysqld, nginx, python, git, v.v.

Là kho chứa images Người dùng có thể tạo ra các images của mình và tải lên đây hoặc tải về các images được chia sẻ.

Docker hoạt động như một thư mục chứa mọi thứ cần thiết để chạy ứng dụng Mỗi container Docker được tạo ra từ một image Docker, cho phép thực hiện các thao tác như chạy, bật, dừng, di chuyển và xóa Các tệp và cài đặt trong container được lưu trữ và sử dụng lại, được gọi chung là images của Docker Docker Hub là nền tảng để chia sẻ và lưu trữ các file images này, hiện có khoảng 300.000 images.

Là một file chứa tập hợp các lệnh để Docker có thể đọc và thực hiện để đóng gói một image theo yêu cầu người dùng.

Là các công cụ, dịch vụ dùng để điều phối và quản lý nhiều containers sao cho chúng làm việc hiệu quả nhất.

Ngày xưa, mô hình máy chủ thường là 1 máy chủ vật lý +

1 hệ điều hành (OS) + 1 application.

Hình 2.3 Mô hình máy chủ bình thường

Khi ứng dụng phát triển, mô hình này nảy sinh ra nhiều vấn đề, ví dụ:

- Lãng phí tài nguyên: mặc dù cấu hình máy khỏe, ổ cứng dung lượng lớn, nhưng hệ thống lại không tận dụng được hết lợi thế này;

- Khó khăn trong việc mở rộng hệ thống: muốn mở rộng phải thuê thêm server, cấu hình, cân bằng tải (load balacing),

Lúc này, công nghệ ảo hóa (vitualization) ra đời.

Hình 3.4 Mô hình máy ảo VMs

Công nghệ ảo hóa cho phép tạo ra nhiều hệ điều hành trên một máy chủ vật lý, từ đó chạy nhiều ứng dụng và tối ưu hóa tài nguyên của máy Tuy nhiên, việc ảo hóa cũng dẫn đến những vấn đề mới cần được giải quyết.

Ngày đăng: 26/12/2024, 17:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w