Hướng dẫn Docker - Giới thiệu về Docker & Containerization



Trong Hướng dẫn Docker này, bạn sẽ hiểu sự cần thiết đằng sau Docker và được giới thiệu về Docker. Đây là blog đầu tiên trong loạt bài hướng dẫn Docker

Tôi hy vọng bạn đã không bỏ lỡ loạt blog Hướng dẫn DevOps trước đó. Đi qua đây.Xu hướng không thể kiểm soát của Docker container đang phát triển và các tổ chức đang tìm kiếm các chuyên gia sở hữu .Bây giờ, lần này, chúng tôi sẽ đưa bạn qua Giới thiệu về Docker.

Hướng dẫn Docker

Blog Hướng dẫn Docker này sẽ cung cấp cho bạn khái niệm và tiếp xúc thực tế với Docker - Một công nghệ chứa đựng thời đại mới.





Trong blog này, chúng tôi sẽ tập trung vào các chủ đề dưới đây:

  • Ảo hóa là gì?
  • Containerization là gì
  • Ưu điểm của Containerization so với Virtualization
  • Giới thiệu về Docker
  • Lợi ích của Docker
  • Ảo hóa so với Containerization
  • Cài đặt Docker
  • Dockerfile, Docker Image & Docker Container
  • Docker Hub là gì?
  • Kiến trúc Docker
  • Docker Soạn

Docker đang trở nên phổ biến và việc sử dụng nó đang lan rộng như cháy rừng. Lý do cho sự phổ biến ngày càng tăng của Docker là mức độ nó có thể được sử dụng trong một tổ chức CNTT. Rất ít công cụ hiện có chức năng tự thấy hữu ích cho cả nhà phát triển và cũng như quản trị viên hệ thống. Docker là một trong những công cụ thực sự đáp ứng được lời hứa của nó về Xây dựng , TàuChạy .



Nói một cách đơn giản, Docker là một nền tảng chứa phần mềm, có nghĩa là bạn có thể xây dựng ứng dụng của mình, đóng gói chúng cùng với các phụ thuộc của chúng vào một vùng chứa và sau đó các vùng chứa này có thể dễ dàng vận chuyển để chạy trên các máy khác.

Ví dụ: Chúng ta hãy xem xét một ứng dụng dựa trên linux đã được viết cả bằng Ruby và Python. Ứng dụng này yêu cầu một phiên bản cụ thể của linux, Ruby và Python. Để tránh bất kỳ xung đột phiên bản nào từ phía người dùng, có thể tạo một vùng chứa trình kết nối Linux với các phiên bản yêu cầu của Ruby và Python được cài đặt cùng với ứng dụng. Giờ đây, người dùng cuối có thể sử dụng ứng dụng dễ dàng bằng cách chạy vùng chứa này mà không cần lo lắng về các phụ thuộc hoặc bất kỳ xung đột phiên bản nào.

Những vùng chứa này sử dụng Containerization có thể được coi là một phiên bản phát triển của Ảo hóa. Tác vụ tương tự cũng có thể đạt được bằng Máy ảo, tuy nhiên nó không hiệu quả lắm.



Tôi thường nhận được một câu hỏi tại thời điểm này, tức là sự khác biệt giữa Ảo hóa và Containerization là gì? Hai thuật ngữ này rất giống nhau. Vì vậy, trước tiên hãy để tôi cho bạn biết Ảo hóa là gì?

Ảo hóa là gì?

Ảo hóa là kỹ thuật nhập hệ điều hành Khách lên trên hệ điều hành Máy chủ. Kỹ thuật này ban đầu là một phát hiện vì nó cho phép các nhà phát triển chạy nhiều hệ điều hành trong các máy ảo khác nhau, tất cả đều chạy trên cùng một máy chủ. Điều này loại bỏ nhu cầu về tài nguyên phần cứng bổ sung. Ưu điểm của Máy ảo hoặc Ảo hóa là:

  • Nhiều hệ điều hành có thể chạy trên cùng một máy
  • Bảo trì và phục hồi dễ dàng trong trường hợp điều kiện hỏng hóc
  • Tổng chi phí sở hữu cũng ít hơn do nhu cầu cơ sở hạ tầng giảm

Kiến trúc máy ảo - Docker Hướng dẫn Giới thiệu về Docker - Edureka

Trong sơ đồ bên phải, bạn có thể thấy có một hệ điều hành chủ, trên đó có 3 hệ điều hành khách đang chạy, không gì khác ngoài các máy ảo.

Như bạn biết không có gì là hoàn hảo, Ảo hóa cũng có một số thiếu sót. Chạy nhiều Máy ảo trong cùng một hệ điều hành máy chủ sẽ làm giảm hiệu suất. Điều này là do hệ điều hành khách chạy trên hệ điều hành chủ, hệ điều hành này sẽ có hạt nhân và tập hợp các thư viện và phụ thuộc riêng. Điều này chiếm một lượng lớn tài nguyên hệ thống, tức là đĩa cứng, bộ xử lý và đặc biệt là RAM.

Một vấn đề khác với Máy ảo sử dụng ảo hóa là mất gần một phút để khởi động.Điều này rất quan trọng trong trường hợp ứng dụng thời gian thực.

Sau đây là những nhược điểm của Ảo hóa:

  • Chạy nhiều Máy ảo dẫn đến hiệu suất không ổn định
  • Trình giám sát không hiệu quả như hệ điều hành chủ
  • Quá trình khởi động lâu và mất thời gian

Những hạn chế này dẫn đến sự xuất hiện của một kỹ thuật mới được gọi là Containerization. Bây giờ để tôi nói cho bạn biết về Containerization.

Containerization là gì?

Containerization là kỹ thuật đưa ảo hóa lên cấp hệ điều hành. Trong khi Virtualization mang lại sự trừu tượng cho phần cứng, Containerization mang lại sự trừu tượng cho hệ điều hành. Lưu ý rằng Containerization cũng là một loại Ảo hóa. Tuy nhiên, Containerization hiệu quả hơn vì không có hệ điều hành khách ở đây và sử dụng hệ điều hành của máy chủ lưu trữ, chia sẻ thư viện và tài nguyên liên quan khi cần thiết không giống như máy ảo. Các mã nhị phân và thư viện vùng chứa dành riêng cho ứng dụng chạy trên hạt nhân máy chủ, giúp xử lý và thực thi rất nhanh. Ngay cả việc khởi động một thùng chứa cũng chỉ mất một phần nhỏ giây. Bởi vì tất cả các vùng chứa chia sẻ, lưu trữ hệ điều hành và chỉ giữ các tệp nhị phân & thư viện liên quan đến ứng dụng. Chúng nhẹ và nhanh hơn Máy ảo.

Ưu điểm của Containerization so với Virtualization:

  • Các vùng chứa trên cùng một nhân hệ điều hành nhẹ hơn và nhỏ hơn
  • Sử dụng tài nguyên tốt hơn so với máy ảo
  • Quá trình khởi động ngắn và mất vài giây

Trong sơ đồ bên phải, bạn có thể thấy rằng có một hệ điều hành máy chủ được chia sẻ bởi tất cả các vùng chứa. Vùng chứa chỉ chứa các thư viện ứng dụng cụ thể riêng biệt cho từng vùng chứa và chúng nhanh hơn và không lãng phí bất kỳ tài nguyên nào.

Tất cả các vùng chứa này được xử lý bởi lớp chứa không có nguồn gốc từ hệ điều hành máy chủ. Do đó, cần có một phần mềm, phần mềm này có thể cho phép bạn tạo và chạy các vùng chứa trên hệ điều hành máy chủ của mình.

Hãy xem video hướng dẫn Docker này để hiểu sâu về Docker.

Hướng dẫn Docker cho người mới bắt đầu | Docker là gì? | Công cụ DevOps | Edureka

Bây giờ, hãy để tôi đưa bạn qua phần giới thiệu về Docker.

Hướng dẫn Docker - Giới thiệu về Docker

Docker là một nền tảng container hóa ứng dụng của bạn và tất cả các phần phụ thuộc của nó lại với nhau dưới dạng Container để đảm bảo rằng ứng dụng của bạn hoạt động liền mạch trong mọi môi trường.

Như bạn có thể thấy trong sơ đồ bên phải, mỗi ứng dụng sẽ chạy trên một vùng chứa riêng biệt và sẽ có một bộ thư viện và phụ thuộc riêng. Điều này cũng đảm bảo rằng có sự cô lập ở cấp độ quy trình, có nghĩa là mỗi ứng dụng độc lập với các ứng dụng khác, mang lại cho các nhà phát triển sự chắc chắn rằng họ có thể xây dựng các ứng dụng sẽ không can thiệp vào nhau.

Là một nhà phát triển, tôi có thể tạo một vùng chứa có các ứng dụng khác nhau được cài đặt trên đó và đưa nó cho nhóm QA của tôi, những người sẽ chỉ cần chạy vùng chứa để tái tạo môi trường dành cho nhà phát triển.

Lợi ích của Docker

Giờ đây, nhóm QA không cần cài đặt tất cả các phần mềm và ứng dụng phụ thuộc để kiểm tra mã và điều này giúp họ tiết kiệm rất nhiều thời gian và năng lượng. Điều này cũng đảm bảo rằng môi trường làm việc nhất quán cho tất cả các cá nhân tham gia vào quá trình, bắt đầu từ phát triển đến triển khai. Số lượng hệ thống có thể được mở rộng một cách dễ dàng và mã có thể được triển khai trên chúng một cách dễ dàng.

Ảo hóa so với Containerization

Ảo hóa và Containerization đều cho phép bạn chạy nhiều hệ điều hành bên trong một máy chủ.

Ảo hóa liên quan đến việc tạo nhiều hệ điều hành trong một máy chủ duy nhất. Mặt khác, container sẽ tạo ra nhiều container cho mọi loại ứng dụng theo yêu cầu.

Nhân vật: Phân tích dữ liệu lớn là gì - Ảo hóa so với Containerization

Như chúng ta có thể thấy từ hình ảnh, sự khác biệt chính là có nhiều Hệ điều hành khách trong Ảo hóa không có trong Containerization. Phần tốt nhất của Containerization là nó rất nhẹ so với ảo hóa nặng.

Bây giờ, chúng ta hãy cài đặt Docker.

Cài đặt Docker:

Tôi sẽ cài đặt Docker trong máy Ubuntu 17.10 của mình. Sau đây là các bước để cài đặt Docker:

  1. Cài đặt các Gói bắt buộc
  2. Thiết lập kho lưu trữ Docker
  3. Cài đặt Docker trên Ubuntu

1. Cài đặt các Gói yêu cầu:

Có một số gói nhất định bạn yêu cầu trong hệ thống của mình để cài đặt Docker. Thực hiện lệnh dưới đây để cài đặt các gói đó.

sudo apt-get install curl apt-transport-https ca-Certificates software-properties-common

2. Thiết lập Kho lưu trữ Docker:

Bây giờ, nhập khóa GPG chính thức của Dockers để xác minh chữ ký gói trước khi cài đặt chúng bằng apt-get. Chạy lệnh dưới đây trên thiết bị đầu cuối:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Bây giờ, hãy thêm kho lưu trữ Docker trên hệ thống Ubuntu của bạn, nơi chứa các gói Docker bao gồm các phụ thuộc của nó, để thực thi lệnh dưới đây:

sudo add-apt-repository 'deb [Arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) ổn định'

3. Cài đặt Docker trên Ubuntu:

Bây giờ bạn cần nâng cấp chỉ mục apt và cài đặt phiên bản cộng đồng Docker, để thực hiện các lệnh dưới đây:

sudo apt-get update sudo apt-get install docker-ce

Xin chúc mừng! Bạn đã cài đặt Docker thành công. Ngoài ra, hãy xem một số loại thường được sử dụng Lệnh Docker .

Bây giờ chúng ta hãy xem một vài khái niệm Docker quan trọng.

Dockerfile, Docker Image và Docker Container:

  1. Docker Image được tạo bởi chuỗi lệnh được viết trong một tệp được gọi là Dockerfile.
  2. Khi Dockerfile này được thực thi bằng lệnh docker, nó dẫn đến một Docker Image có tên.
  3. Khi Hình ảnh này được thực thi bằng lệnh 'docker run', nó sẽ tự khởi động bất kỳ ứng dụng hoặc dịch vụ nào mà nó phải bắt đầu khi thực thi.

Trung tâm Docker:

Docker Hub giống như GitHub dành cho Hình ảnh Docker. Về cơ bản, nó là một sổ đăng ký đám mây, nơi bạn có thể tìm thấy Hình ảnh Docker được tải lên bởi các cộng đồng khác nhau, bạn cũng có thể phát triển hình ảnh của riêng mình và tải lên trên Docker Hub, nhưng trước tiên, bạn cần tạo một tài khoản trên DockerHub.

Kiến trúc Docker:

Nó bao gồm một Công cụ Docker là một ứng dụng khách-máy chủ với ba thành phần chính:

  1. Máy chủ là một loại chương trình chạy lâu dài được gọi là quy trình daemon (lệnh docker).
  2. Một API REST chỉ định các giao diện mà các chương trình có thể sử dụng để nói chuyện với daemon và hướng dẫn nó phải làm gì.
  3. Máy khách giao diện dòng lệnh (CLI) (lệnh docker).
  4. CLI sử dụng API Docker REST để kiểm soát hoặc tương tác với trình nền Docker thông qua các lệnh CLI kịch bản hoặc trực tiếp. Nhiều ứng dụng Docker khác sử dụng API và CLI cơ bản.

Tham khảo blog này, để đọc thêm về .

Cuối cùng trong blog Hướng dẫn Docker này, tôi sẽ nói về Docker Compose.

Docker Soạn:

Docker Compose về cơ bản được sử dụng để chạy nhiều Docker Containers như một máy chủ duy nhất. Tôi sẽ cho bạn một ví dụ:

Giả sử nếu tôi có một ứng dụng yêu cầu WordPress, Maria DB và PHP MyAdmin. Tôi có thể tạo một tệp sẽ khởi động cả hai vùng chứa dưới dạng dịch vụ mà không cần khởi động từng tệp riêng biệt. Nó thực sự hữu ích, đặc biệt nếu bạn có kiến ​​trúc microservice.

Giới thiệu blog của tôi trên Docker Container để hiểu cách thực thi nó trên thực tế.

Ngoài ra, bạn có thể đọc blog này về cách bạn có thể chứa một ứng dụng ngăn xếp trung bình bằng Docker Compose.

Với điều này, chúng ta sẽ kết thúc blog đầu tiên của Hướng dẫn Docker về Giới thiệu về Docker & Containerization.

Xem qua blog tiếp theo của chúng tôi trên Docker:

Bây giờ bạn đã hiểu DevOps là gì, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo Chứng chỉ Edureka DevOps giúp người học có được kiến ​​thức chuyên môn về các quy trình và công cụ DevOps khác nhau như Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack và GIT để tự động hóa nhiều bước trong SDLC.

sự khác biệt giữa ghi đè phương thức và ghi đè trong java

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận và chúng tôi sẽ liên hệ lại với bạn.