Câu chuyện về hệ điều hành giúp Docker trở nên dễ dàng hơn

Có rất nhiều người sử dụng Docker. Tuy nhiên, số người hiểu rõ nguyên lý của nó lại rất ít. Nếu không nắm vững nguyên lý, khi gặp sự cố, bạn chỉ có thể phụ thuộc vào việc tìm kiếm thay vì tự mình giải quyết. Bản chất của Docker nằm ở hệ điều hành. Khóa học này không phải là việc học vẹt vài câu lệnh bề nổi, mà sẽ đi sâu vào bên trong hệ điều hành tạo nên Docker. Một khi cấu trúc bên trong đã trở nên rõ ràng, Docker sẽ không còn khó khăn nữa.

(5.0) 5 đánh giá

437 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Network
Network
Linux
Linux
Docker
Docker
Operating System
Operating System
linux-containers
linux-containers
Network
Network
Linux
Linux
Docker
Docker
Operating System
Operating System
linux-containers
linux-containers

Đánh giá từ những học viên đầu tiên

5.0

5.0

dev_PizzaHop

16% đã tham gia

Cá nhân tôi rất thích phong cách giảng dạy của thầy Nullnull, và tôi cảm thấy quan điểm của chúng ta cũng khá tương đồng. Cảm ơn thầy đã dạy dỗ một cách tâm huyết và nghiêm khắc. Tôi đã đăng ký cả hội viên YouTube nên có rất nhiều bài giảng để học. Tôi sẽ học tập thật chăm chỉ để trở thành một nhà phát triển backend danh tiếng. Tôi sẽ cố gắng học xong hết trước buổi phát sóng trực tiếp vào thứ Hai tuần tới. Cực kỳ đề xuất!

5.0

bridge130

24% đã tham gia

Đúng là bài giảng tuyệt vời của thầy Choi Ho-seong, người đã giúp tôi hệ thống lại những nội dung vốn đã biết một cách cực kỳ dễ hiểu và mạch lạc! Nếu là một nhà phát triển phần mềm, nhất định phải nghe khóa học này cùng với khóa học về mạng. Nếu lấy đó làm nền tảng, việc học tập sau này chắc chắn sẽ trở nên dễ dàng hơn nhiều.

5.0

최우석

31% đã tham gia

Bạn hướng dẫn rất dễ hiểu luôn ạ!!

Bạn sẽ nhận được điều này sau khi học.

  • Bạn có thể hiểu được nguyên lý hoạt động của 'bộ nhớ ảo', cốt lõi của công nghệ hệ điều hành.

  • Bằng cách hiểu sâu về cách hệ thống tệp quản lý các tệp tin, bạn có thể biết được việc xóa và khôi phục tệp tin diễn ra như thế nào.

  • Bạn có thể hiểu được công nghệ container Linux được triển khai dựa trên nguyên lý nào.

  • Bạn có thể tìm hiểu Process và Thread là gì cũng như sự khác biệt giữa chúng.


Khoảnh khắc bạn hiểu được cấu trúc bên trong, Docker sẽ trở nên thực sự dễ dàng.


Các lý thuyết hệ điều hành cốt lõi giúp nắm vững nguyên lý cơ bản của Docker, giờ đây bạn hoàn toàn có thể hiểu rõ

Rất nhiều nhà phát triển sử dụng Docker. Tuy nhiên, nếu không hiểu rõ nguyên lý hoạt động, bạn sẽ khó có thể tự mình giải quyết khi có vấn đề phát sinh. Cốt lõi của Docker thực chất nằm ở chính hệ điều hành. Vì vậy, khóa học này không tập trung vào cách sử dụng bề nổi mà đi sâu vào bên trong hệ điều hành, nơi nâng đỡ Docker.


Khóa học này có thứ tự khác biệt


Trong khóa học này, Docker chỉ thực sự xuất hiện khi đến phần thứ mười trong tổng số mười một phần. Chín phần trước đó hoàn toàn là về CPU, bộ nhớ, tiến trình, hệ thống tệp và mạng. Nói cách khác, đó là câu chuyện về hệ điều hành.

Lý do rất đơn giản. Đó là vì container không phải là một công nghệ mới đột ngột xuất hiện, mà là sự kết hợp khéo léo của các tính năng vốn có của Linux (Namespace, cgroups, Overlay file system, netfilter). Nếu bạn đi theo trình tự của hệ điều hành, bạn sẽ thấy rằng mình không phải đang "học mới" Docker, mà là đang chứng kiến quá trình lắp ráp những thứ mà bạn đã biết.

Trong khóa học này, ngay cả trước khi cài đặt Docker, bạn sẽ được tự mình thực thi container mà không cần Docker. Sau trải nghiệm này, các lệnh Docker sẽ không còn là thứ để học thuộc lòng nữa mà trở thành một kết quả tất yếu.

Hãy bắt đầu hành trình hiểu rõ các nguyên lý cốt lõi của hệ điều hành,
khám phá các nguyên lý cơ bản của công nghệ container Linux để
trở thành một chuyên gia Docker
.

Sau khi khóa học này kết thúc, bạn sẽ...

Bạn sẽ hiểu hoàn hảo các lý thuyết cốt lõi của hệ điều hành và nắm vững các nguyên lý cơ bản của Docker.

Trước khi học, Docker có thể là một "công cụ học thuộc lòng", nhưng sau khóa học, nó sẽ trở thành một "hệ thống mà bạn có thể nhìn thấu cách vận hành". Khi container không khởi động, khi dữ liệu volume dường như biến mất, hay khi các container không thể kết nối với nhau, thay vì chỉ sao chép và dán kết quả tìm kiếm, bạn sẽ có thể suy luận nguyên nhân ở cấp độ hệ điều hành và tự mình giải quyết vấn đề. Và kiến thức này không chỉ giới hạn ở Docker. Dù là Kubernetes hay bất kỳ công nghệ nào xuất hiện tiếp theo, cuối cùng chúng cũng đều vận hành trên cùng một hệ điều hành.


✔️

Lý do tại sao bài giảng này là giải pháp nhanh nhất

Trước khi học Docker,

Hiểu từ cấu trúc bên trong của hệ điều hành!

Chúng tôi sẽ giải thích một cách dễ hiểu và rõ ràng những lý thuyết thiết yếu mà bạn nhất định phải biết để hiểu rõ về Docker, từ hệ thống bộ nhớ ảo vốn là cốt lõi của hệ điều hành, cho đến nguyên lý của công nghệ Linux containernetfilter dựa trên cấu trúc bên trong của nhân Linux.

※ Tìm hiểu về netfilter, thành phần được tích hợp trong bộ thực thi giao thức IP của nhân Linux. Dựa trên cơ sở này, bạn có thể sử dụng thành thạo lệnh iptables.


Thực chiến! Hiểu về công nghệ Container

Dựa trên những lý thuyết đã học, chúng ta sẽ thử thực thi container mà không cần Docker. Thông qua quá trình này, bạn có thể nắm bắt được cốt lõi của công nghệ container và nhận ra sự thật rằng Docker thực chất chỉ là một lớp vỏ bọc đơn thuần.

Những thứ tưởng chừng như không liên quan nhưng thực chất lại có cùng bản chất

Cách dễ dàng để khôi phục các máy tính trong quán net hoặc phòng thực hành máy tính hoặc hiểu được rằng nguyên lý của công nghệ nhằm bảo vệ hệ thống khỏi mã độc cũng giống như nguyên lý của công nghệ ảo hóa, bạn sẽ có thể nắm bắt được bản chất của nó.


Bạn có thể tự mình cảm nhận được sự cần thiết đó!

Bạn có thể lĩnh hội được lý do tại sao cần Docker compose hay k8s giống như việc hiểu bằng trải nghiệm chứ không phải chỉ biết bằng lý thuyết. Khi trải nghiệm quá trình thấu hiểu nguyên lý, làm chủ nó như của chính mình và mở rộng phạm vi, bạn sẽ tự mình cảm nhận được sự cần thiết đó. Và sự cấp thiết về nhu cầu sẽ trở thành động lực học tập mạnh mẽ.


Có thể giải quyết
nỗi lo của những người như thế này!

📌

Các nhà phát triển mới vào nghề cần học Docker nhưng cảm thấy mình thiếu hiểu biết về các nguyên lý cơ bản của hệ điều hành


📌

Những người mới bắt đầu với Cloud muốn biết các khái niệm cốt lõi của hệ điều hành như bộ nhớ ảo, lập lịch tiến trình được ứng dụng như thế nào trong môi trường Docker


📌

Kỹ sư hệ thống sơ cấp đang gặp khó khăn trong việc xác định nguyên nhân gốc rễ khi xảy ra sự cố do chưa hiểu rõ cách thức hoạt động của Linux container.


Giai đoạn 1 — Thống nhất điểm xuất phát (Phần 1)
Trước khi bắt đầu bài học chính thức, tôi sẽ phân biệt rõ ràng giữa những nội dung được giả định là bạn đã biết và những nội dung chỉ cần ghi nhớ thay vì phải thấu hiểu. Bạn có thể kiểm tra trước xem mình cần biết đến mức độ nào để có thể theo kịp khóa học.


Giai đoạn 2 — Bản chất của cỗ máy mang tên máy tính (Phần 2)
Nội dung đề cập đến CPU - bộ phận quyết định danh tính của máy tính, và phân cấp bộ nhớ từ Register đến Cache, RAM, SSD. Đây là nền tảng vật lý của mọi câu chuyện.


Bước 3 — Chủ thể thực thi, Tiến trình (Phần 3)
Thiết lập quan điểm phân biệt giữa chủ thể và đối tượng của hành vi trong thế giới máy tính, đồng thời nắm bắt thực thể của việc 'thực thi' từ sự khác biệt trong nguyên lý hoạt động giữa mã nguồn C và Java (và JVM), lập lịch và chuyển đổi, cho đến mối quan hệ và quyền hạn giữa các tiến trình.


Bước 4 — Hệ thống tệp (Phần 4)
Tìm hiểu về việc tệp thực sự được lưu trữ ở đâu và như thế nào, điều gì xảy ra bên trong khi xóa tệp (bao gồm cả nguyên lý của công cụ giám sát thời gian thực trong phần mềm diệt virus), so sánh cấu trúc thư mục của Windows và Linux, thực chất của việc "cài đặt" chương trình, và cả các lệnh quản lý tệp trên Linux.


Bước 5 — Bộ nhớ ảo, sự khởi đầu của cô lập (Phần 5)
Cô lập bộ nhớ tiến trình (cùng với lý do tại sao các kỹ thuật hack game phổ biến lại hiệu quả), hoán đổi bộ nhớ (memory swap), Copy on Write, giao tiếp giữa các tiến trình (IPC), không gian địa chỉ tệp và cả RAM drive. Tất cả các khái niệm cốt lõi cần thiết để hiểu về sự "cô lập" của container đều xuất phát từ đây.


Bước 6 — Những mảnh ghép tạo nên Container (Phần 6~7)
Bắt đầu từ nguyên lý phục hồi ổ cứng máy tính tại quán net để hiểu về cấu trúc hệ thống tệp Overlay, đồng thời tìm hiểu về Linux Namespace và Control groups (cgroups). Thực tế, những mảnh ghép này chính là container.


Bước 7 — Thực thể của Container (Phần 8)
Sau khi tìm hiểu tổng quan về công nghệ container và tiêu chuẩn hình ảnh container (OCI, Docker cũng tuân theo tiêu chuẩn này), chúng ta sẽ chạy container mà không cần Docker.


Bước 8 — Mạng, mảnh ghép cuối cùng (Phần 9)
Bắt đầu từ nguyên lý hoạt động của bộ định tuyến (NAT) mà ai cũng sử dụng, cho đến netfilter và Chain, iptables, luồng nội bộ của hệ thống mạng Linux và các lệnh quản trị. Bạn sẽ nhận ra rằng mạng Docker không phải là "phép thuật".


Bước 9 — Bây giờ là Docker (Phần 10)
Cuối cùng cũng đến Docker. Chúng ta sẽ tìm hiểu về Image và Container, cài đặt trên Windows 11, vòng đời của container và các câu lệnh chính. Đối với những học viên đã đi đến bước này, phần này sẽ giống như một bài ôn tập.


Bước 10 — Dự án thực tế (Phần 11)
Bạn sẽ trực tiếp tạo một dịch vụ 3-tier bao gồm Next.js frontend, Spring Boot API server và cơ sở dữ liệu PostgreSQL bằng container. Hoàn tất quy trình làm việc thực tế từ tạo image, thiết lập Docker Volume cho đến cấu hình mạng container.



Lưu ý trước khi khóa học bắt đầu


Môi trường thực hành

  • WSL dựa trên Windows 11

  • Docker Desktop

Tài liệu học tập

  • Tài liệu bài giảng file PDF

  • 2 hình ảnh Docker sẽ sử dụng để thực hành (Frontend, Backend)


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người biết cách sử dụng các câu lệnh Docker, nhưng khi gặp vấn đề thì việc đầu tiên làm là tìm kiếm trên mạng.

  • Những ai từng thắc mắc "thực thể" của image, container, volume, và mạng ảo là gì

  • Những người cảm thấy bế tắc vì đã học lý thuyết hệ điều hành nhưng không thể kết nối được với thực tế công việc

  • Nhà phát triển trẻ (Junior) đang định hướng phát triển theo hướng Backend, Cơ sở hạ tầng (Infrastructure) và DevOps.

Cần biết trước khi bắt đầu?

  • Kinh nghiệm thiết lập địa chỉ IP trong hệ điều hành (Kiến thức cơ bản về TCP/IP)

  • Hiểu về vai trò của các thư mục Program files và Windows trong hệ điều hành Windows

  • Sẽ rất hữu ích nếu bạn có kinh nghiệm lập trình ngôn ngữ C

Xin chào
Đây là nullnull8537

Xác minh Inflearn

52,527

Học viên

3,159

Đánh giá

1,216

Trả lời

4.9

Xếp hạng

32

Các khóa học

Tôi là chủ sở hữu kênh TV Nhà phát triển thong dong,
đồng thời là một nhà phát triển đã và đang điều hướng trên biển cả công nghệ IT trong hơn 30 năm qua. Rất vui được làm quen với các bạn. ^^

Chương trình giảng dạy

Tất cả

45 bài giảng ∙ (12giờ 3phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

5 đánh giá

5.0

5 đánh giá

  • 1stfly1222님의 프로필 이미지
    1stfly1222

    Đánh giá 2

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    31% đã tham gia

    Bạn hướng dẫn rất dễ hiểu luôn ạ!!

    • kwoghks98님의 프로필 이미지
      kwoghks98

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      16% đã tham gia

      Cá nhân tôi rất thích phong cách giảng dạy của thầy Nullnull, và tôi cảm thấy quan điểm của chúng ta cũng khá tương đồng. Cảm ơn thầy đã dạy dỗ một cách tâm huyết và nghiêm khắc. Tôi đã đăng ký cả hội viên YouTube nên có rất nhiều bài giảng để học. Tôi sẽ học tập thật chăm chỉ để trở thành một nhà phát triển backend danh tiếng. Tôi sẽ cố gắng học xong hết trước buổi phát sóng trực tiếp vào thứ Hai tuần tới. Cực kỳ đề xuất!

      • nullnull8537
        Giảng viên

        Cảm ơn bạn vì đánh giá khóa học đầu tiên. Trên hết, tôi chân thành cảm ơn bạn vì đã đón nhận phong cách vốn có của tôi một cách tích cực. Trong tương lai, tôi sẽ không quên mục tiêu ban đầu và nỗ lực làm tốt công việc của mình. :)

    • bridge1309961님의 프로필 이미지
      bridge1309961

      Đánh giá 5

      Đánh giá trung bình 5.0

      Đã chỉnh sửa

      5

      24% đã tham gia

      Đúng là bài giảng tuyệt vời của thầy Choi Ho-seong, người đã giúp tôi hệ thống lại những nội dung vốn đã biết một cách cực kỳ dễ hiểu và mạch lạc! Nếu là một nhà phát triển phần mềm, nhất định phải nghe khóa học này cùng với khóa học về mạng. Nếu lấy đó làm nền tảng, việc học tập sau này chắc chắn sẽ trở nên dễ dàng hơn nhiều.

      • hahahl님의 프로필 이미지
        hahahl

        Đánh giá 65

        Đánh giá trung bình 5.0

        5

        7% đã tham gia

        • zibril님의 프로필 이미지
          zibril

          Đánh giá 11

          Đánh giá trung bình 5.0

          5

          32% đã tham gia

          Khóa học khác của nullnull8537

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!

          Ưu đãi có thời hạn

          61.600 ₫

          30%

          1.842.904 ₫