inflearn logo

Kiến thức cơ bản về Docker - từ cài đặt đến Docker Compose đa container

Đây là khóa học hoàn thiện những kiến thức nền tảng về Docker trong 7 bài, tổng thời lượng 3 giờ 55 phút. Không chỉ dừng ở việc giải thích khái niệm, khóa học còn hướng dẫn bạn trực tiếp viết và build 5 Dockerfile, cuối cùng đóng gói máy chủ FastAPI và cơ sở dữ liệu MySQL thành một ứng dụng duy nhất, có thể chạy chỉ bằng một dòng docker compose up. Bài 1 và bài 2 bắt đầu từ việc cài đặt Docker Desktop và kiểm tra môi trường WSL2. Khi pull image ubuntu từ Docker Hub, bạn sẽ xác nhận rằng một image được cấu thành từ nhiều layer, đồng thời học cách quản lý image cục bộ bằng images và rmi. Tiếp đó, bạn sẽ tìm hiểu vòng đời của container với run, ps, stop và rm, rồi dùng exec để truy cập vào bên trong container đang chạy. Bạn cũng sẽ mở trang web của container httpd trên trình duyệt bằng cách ánh xạ cổng (-p), đồng thời khởi chạy container MySQL với volume (-v) và biến môi trường (-e) để hiểu tại sao dữ liệu vẫn tồn tại ngay cả sau khi xóa container. Bài 3 đến bài 5 là phần tự xây dựng image. Bạn sẽ lần lượt tìm hiểu FROM, WORKDIR, COPY, ENV, RUN, CMD và EXPOSE, đồng thời nắm được sự khác biệt: RUN hoạt động tại thời điểm build, còn CMD hoạt động tại thời điểm chạy. Bốn loại đối tượng sẽ lần lượt được đóng gói thành image: một script Python chạy một lần rồi kết thúc, một máy chủ FastAPI chạy liên tục, một tệp thực thi được biên dịch bằng PyInstaller và một binary có sẵn như jq. Đặc biệt, trong ví dụ biên dịch, khóa học sử dụng multi-stage build để loại bỏ các công cụ build và chỉ giữ lại sản phẩm cuối cùng. Bài 6 và bài 7 tập trung vào việc kết nối các container. Trước tiên, bạn sẽ tái hiện lỗi "Internal Server Error" xảy ra khi khởi chạy hai container mà không thiết lập mạng. Sau đó, bạn sẽ tạo mạng bằng docker network create để các container có thể tìm thấy nhau chỉ bằng tên container. Bạn cũng sẽ kiểm tra IP được cấp phát bằng network inspect, đồng thời trực tiếp xác nhận trong container rằng DNS tích hợp của Docker (127.0.0.11) hoạt động thông qua ping và /etc/resolv . conf. Ở bài 7 cuối cùng, tất cả các tùy chọn docker run đã học sẽ được chuyển vào một tệp compose.yaml, để có thể khởi chạy hoặc dừng toàn bộ ứng dụng bằng up và down. Các dự án gồm 5 loại tài liệu như Dockerfile, app . py và compose.yaml được sử dụng trong phần thực hành đều được cung cấp, nên bạn có thể bắt đầu theo học ngay mà không cần gõ lại. Môi trường thực hành được tiến hành trên Windows + PowerShell; các câu lệnh cũng giống hệt trên macOS và Linux.

2 học viên đang tham gia khóa học này

Độ khó Nhập môn

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

Docker
Docker
docker-compose
docker-compose
dockerfile
dockerfile
Python
Python
FastAPI
FastAPI
Docker
Docker
docker-compose
docker-compose
dockerfile
dockerfile
Python
Python
FastAPI
FastAPI

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

  • Có thể hiểu được mối quan hệ giữa image Docker và container, đồng thời trực tiếp quản lý image và container bằng các lệnh pull, images, rmi, run, ps, stop, rm, exec.

  • Có thể viết riêng các lệnh FROM, WORKDIR, COPY, ENV, RUN, CMD, EXPOSE trong Dockerfile và tạo image bằng docker build.

  • Có thể sử dụng bản dựng nhiều giai đoạn để tạo image chỉ chứa các thành phẩm biên dịch của PyInstaller, đồng thời đóng gói các binary có sẵn như jq vào image.

  • Trong compose.yaml, có thể viết services, image, build, ports, environment và depends_on, đồng thời quản lý nhiều container như một đơn vị bằng các lệnh docker compose up/down/ps/build.

  • Có thể chạy các container httpd và MySQL bằng cách áp dụng các tùy chọn ánh xạ cổng (-p), volume (-v) và biến môi trường (-e), sau đó truy cập chúng từ trình duyệt trên máy chủ.

  • Có thể xây dựng riêng thành image một script Python chạy một lần rồi kết thúc và một máy chủ FastAPI chạy liên tục để giải thích sự khác biệt giữa hai phương thức.

  • Có thể tạo mạng bằng docker network create để cấu hình container FastAPI kết nối đến MySQL bằng tên container.

Nhập môn Docker qua thực hành: từ Python, FastAPI, MySQL đến Docker Compose

Đây là khóa học thực hành dành cho những người mới làm quen với Docker. Bạn sẽ học từng bước, từ các khái niệm cơ bản về image và container, cách viết Dockerfile, cấu hình mạng container cho đến quản lý nhiều container bằng Docker Compose.

Bạn sẽ thực hành tự tạo image Docker từ các tập lệnh Python và máy chủ FastAPI, cũng như cách kết nối với cơ sở dữ liệu MySQL. Bạn có thể xây dựng các kỹ năng nền tảng cần thiết để duy trì môi trường phát triển nhất quán và triển khai ứng dụng một cách hiệu quả.

Phù hợp với những người muốn bắt đầu trong các lĩnh vực phát triển back-end, phát triển Python, kỹ thuật dữ liệu và DevOps; mục tiêu là học được khả năng sử dụng Docker có thể áp dụng vào các dự án thực tế.

Bạn sẽ học được gì

Nội dung học tập cốt lõi (Core Keywords)

1. Kiến thức cơ bản về Docker và quản lý image

  • Hiểu sự khác biệt giữa image và container trong Docker

  • Quản lý image bằng các lệnh docker pull, docker images, docker rmi

  • Quản lý vòng đời container bằng các lệnh docker run, docker ps, docker stop, docker rm, docker exec

2. Chạy container và thiết lập môi trường

  • Thiết lập truy cập bên ngoài vào máy chủ web thông qua ánh xạ cổng (-p)

  • Dữ liệu sử dụng volume (-v)

Trước khi đăng ký

Kiến thức cần có và hướng dẫn khóa học (Prerequisites & Notices)

1. Kiến thức nền tảng và các bước chuẩn bị

  • Người mới bắt đầu học Docker cũng có thể tham gia khóa học.

  • Trong môi trường Windows 11, cần cài đặt Docker Desktop và WSL2; trong quá trình cài đặt, bạn cần có khả năng sử dụng PowerShell với quyền quản trị viên.

  • Bạn cũng có thể thực hành trên macOS và Linux.

  • Sẽ tốt hơn nếu bạn đã từng sử dụng các lệnh cơ bản như mkdir và cd trong terminal.

  • Nếu bạn biết cú pháp cơ bản của Python, bạn sẽ dễ dàng theo kịp các bài thực hành về máy chủ FastAPI và tập lệnh Python hơn.

  • Không bắt buộc phải có kiến thức nền tảng về Docker hay container.

2. Môi trường học tập và phương pháp học

  • Khóa học này gồm các video trực tuyến với tổng thời lượng 3 giờ 55 phút.

  • Bài giảng được hướng dẫn dựa trên môi trường Windows 11 và PowerShell, đồng thời các lệnh Docker chính cũng có thể được sử dụng trên macOS và Linux.

  • Hãy sử dụng tài liệu thực hành được cung cấp để trực tiếp chạy thử Dockerfile, ứng dụng Python, compose.yaml và các nội dung khác.

  • Sau khi xem bài giảng, bạn nên học bằng cách tự nhập từng lệnh và kiểm tra kết quả thực thi.

  • Nếu học lần lượt từ cài đặt, xây dựng image, mạng container cho đến Docker Compose, bạn sẽ dễ dàng hiểu nội dung hơn.

3. Hỏi đáp và hỗ trợ học tập

  • Nếu xảy ra lỗi trong quá trình thực hành, bạn có thể tổng hợp thông báo lỗi cùng với lệnh đã thực thi, sau đó gửi câu hỏi thông qua tính năng Hỏi & Đáp của khóa học.

  • Khi đặt câu hỏi, việc ghi rõ hệ điều hành, phiên bản Docker, lệnh đã thực thi và nội dung lỗi sẽ giúp ích cho việc xác định vấn đề.

  • Vui lòng kiểm tra thông báo của khóa học để biết về các bản cập nhật bài giảng và việc cung cấp tài liệu bổ sung.

4. Những điều cần lưu ý khi học

  • Để cài đặt và chạy Docker Desktop, bạn cần một máy tính đáp ứng các yêu cầu hệ thống.

  • Trong một số bài thực hành, cần kết nối Internet để tải image từ Docker Hub.

  • Trước khi xóa container, hãy kiểm tra vị trí lưu trữ dữ liệu. Dữ liệu không sử dụng volume có thể bị mất cùng với container khi container bị xóa.

  • Chính sách cấp phép dành cho doanh nghiệp của Docker Desktop có thể khác nhau tùy theo các điều kiện như quy mô công ty và doanh thu, vì vậy nếu sử dụng cho công việc, hãy kiểm tra chính sách cấp phép chính thức.

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

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

  • Người mới bắt đầu lập trình từng nghe về Docker nhưng đã dừng lại ở bước cài đặt

  • Lập trình viên backend muốn chạy MySQL hoặc Redis trong container mà không cần cài đặt trực tiếp trên máy cục bộ

  • Lập trình viên Python cần đóng gói và bàn giao máy chủ được tạo bằng FastAPI hoặc Flask dưới dạng image

  • Một nhà phát triển làm việc theo nhóm muốn loại bỏ vấn đề khác biệt môi trường kiểu "Trên PC của tôi thì chạy được&quot

  • Lập trình viên cấp dưới phải tự viết Dockerfile theo yêu cầu của người phụ trách triển khai,

  • Người mới bắt đầu về phân tích dữ liệu và DevOps muốn tái hiện môi trường phát triển chỉ bằng một dòng lệnh `docker compose up`

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

  • PC có thể cài đặt Docker Desktop (tài liệu hướng dẫn dựa trên Windows 11 + PowerShell, các lệnh cũng giống nhau trên macOS và Linux)

  • Đối với Windows, cần kích hoạt WSL2 và sử dụng PowerShell với quyền quản trị viên trong quá trình cài đặt (cách cài đặt và cập nhật wsl được hướng dẫn trong Bài 1)

  • Kinh nghiệm nhập các lệnh cơ bản như mkdir, cd trong terminal

  • Cú pháp cơ bản của Python - Mã thực hành khoảng 10 dòng, nhưng nếu có thể đọc hiểu các ví dụ FastAPI thì sẽ dễ dàng hơn.

  • Docker Desktop miễn phí cho mục đích học tập và giáo dục cá nhân, nhưng việc sử dụng cho công việc tại các doanh nghiệp có từ 250 nhân viên trở lên hoặc doanh thu hằng năm từ 10 triệu đô la Mỹ trở lên thuộc diện phải đăng ký gói trả phí.

Xin chào
Đây là it learner

Chương trình đào tạo IT do các chuyên gia thực tiễn và đội ngũ giảng viên chuyên nghiệp trong từng lĩnh vực IT giảng dạy, cung cấp các khóa học thực tiễn trong nhiều lĩnh vực như lập trình, phát triển phần mềm, phân tích dữ liệu, trí tuệ nhân tạo, mạng và công nghệ thông tin. Thông qua nội dung đào tạo phản ánh các công nghệ IT mới nhất và xu hướng của ngành, chương trình hỗ trợ học viên đồng thời tiếp thu kiến thức lý thuyết và năng lực thực tiễn, cũng như thích ứng với môi trường IT thay đổi nhanh chóng.

Thêm

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

Tất cả

7 bài giảng ∙ (3giờ 55phú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á

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của it learner

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

15 ₫

6%

440.077 ₫