Thẻ học Docker

Nhà tài trợ chuyên mục

Docker là một nền tảng container hóa ứng dụng được tạo ra bởi Solomon Hykes. Đây là một công cụ được thiết kế với mục đích chuẩn hóa, di động hóa và cô lập môi trường ứng dụng. Docker nổi bật với tính nhẹ nhàng và hiệu quả, cho phép đóng gói, phân phối và chạy ứng dụng cùng với các phụ thuộc của chúng một cách dễ dàng trên các môi trường khác nhau. Hệ thống này cung cấp các tính năng quản lý và điều phối container nâng cao, cung cấp cho nhà phát triển và quản trị viên các công cụ để triển khai, mở rộng và quản lý ứng dụng hiệu quả. Docker cũng hỗ trợ kiến trúc microservice và tích hợp liên tục trong khi vẫn duy trì hiệu suất cao và cho phép quy trình phát triển và triển khai phần mềm nhanh chóng và có thể lặp lại.

Ứng dụng thẻ học của chúng tôi bao gồm các câu hỏi phỏng vấn Docker được chọn lọc kỹ lưỡng với câu trả lời chi tiết sẽ chuẩn bị hiệu quả cho bạn cho bất kỳ cuộc phỏng vấn nào yêu cầu kiến thức về Docker. IT Flashcards không chỉ là một công cụ cho những người tìm việc - đó là một cách tuyệt vời để củng cố và kiểm tra kiến thức của bạn, bất kể kế hoạch nghề nghiệp hiện tại của bạn là gì. Sử dụng ứng dụng thường xuyên sẽ giúp bạn cập nhật với những xu hướng Docker mới nhất và giữ kỹ năng của bạn ở mức cao.

Thẻ học Docker mẫu từ ứng dụng của chúng tôi

Tải xuống ứng dụng của chúng tôi từ App Store hoặc Google Play để nhận thêm flashcard miễn phí hoặc đăng ký để truy cập vào tất cả flashcard.

Điểm khác biệt chính giữa container và máy ảo là gì?

1. Kiến trúc:
Một máy ảo chứa một hệ điều hành đầy đủ, với kernel, ứng dụng và thư viện riêng của nó, được chạy trên một hypervisor. Hypervisor quản lý việc chia sẻ tài nguyên phần cứng của máy ảo. Do máy ảo chứa một hệ điều hành đầy đủ, nên kích thước đĩa lớn hơn.

Ngược lại, containers chia sẻ kernel của hệ điều hành mà chúng đang chạy và chỉ chứa các ứng dụng và các phụ thuộc của chúng. Chúng được quản lý bởi một công cụ container, như Docker. Containers nhỏ hơn và có ít overhead hơn, vì chúng không yêu cầu một hệ điều hành đầy đủ.

2. Hiệu suất:
Máy ảo có overhead lớn hơn, vì chúng phải chạy một hệ điều hành đầy đủ. Điều này ảnh hưởng đến hiệu suất, cả trong quá trình khởi động và khi chạy.

Containers có overhead ít hơn, nhẹ hơn và nhanh hơn khi khởi động, và việc triển khai cũng đơn giản hơn, vì chúng có thể dễ dàng di chuyển giữa các môi trường.

Cuối cùng, cả containers và máy ảo đều có vị trí của mình trong phát triển ứng dụng và cả hai công nghệ thường được sử dụng cùng nhau trong kiến trúc ứng dụng. Tuy nhiên, sự vắng mặt của các hệ điều hành riêng biệt khiến cho containers ít bị cô lập và có thể ít an toàn hơn so với máy ảo.

Hình ảnh Docker là gì và nó được sử dụng như thế nào?

Một hình ảnh Docker, còn được biết đến là Docker image, là một tệp không thể thay đổi chứa phần mềm đã cấu hình. Hình ảnh Docker được tạo dựa trên Dockerfile, cung cấp hướng dẫn về cách xây dựng hình ảnh.

Thành phần chính của hình ảnh Docker là các lớp. Mỗi dòng hướng dẫn trong Dockerfile tạo một lớp mới. Các lớp được xếp chồng lên nhau, từ đó tạo thành hình ảnh cuối cùng.

Hình ảnh Docker được sử dụng để chạy một Docker container. Một container là một thực thể của hình ảnh đang chạy dưới dạng quy trình. Ngược lại với hình ảnh, container có trạng thái và có thể được sửa đổi.

Bởi vì hình ảnh Docker là không thể thay đổi và chứa tất cả các phụ thuộc cần thiết, chúng có thể dễ dàng được chuyển giữa các hệ thống và máy chủ khác nhau. Kết quả là, các ứng dụng chạy trên hình ảnh Docker luôn giống nhau, bất kể môi trường, điều này đơn giản hóa việc kiểm tra và triển khai.

Một trong những nguyên tắc chính của Docker là cách gọi là "xây dựng một lần, chạy ở bất cứ đâu", có nghĩa là hình ảnh được xây dựng một lần có thể chạy trên bất kỳ hệ thống nào hỗ trợ Docker.

Docker sử dụng các lớp trong hình ảnh container như thế nào?

Docker sử dụng khái niệm các lớp để lắp ráp các hình ảnh container. Mỗi lệnh trong Dockerfile tạo ra một lớp mới trong hình ảnh thêm vào, chỉnh sửa, hoặc xóa các tệp tin từ lớp trước.

Các lớp Docker chỉ có thể đọc, nghĩa là chúng không thể được sửa đổi sau khi được tạo. Khi một container được khởi chạy, Docker thêm một lớp có thể ghi ở phía trên lớp đã chồng lên nhau. Tất cả các thay đổi trong container, ví dụ như lưu các tệp mới, chỉnh sửa những cái hiện có, hoặc xóa tệp, được thực hiện trong lớp có thể ghi này.

Nhờ sử dụng hệ thống lớp, Docker có thể chia sẻ và lưu trữ hình ảnh một cách hiệu quả. Khi hình ảnh được kéo, Docker lấy mỗi lớp mà nó chưa có trong cache của mình. Khi tạo và lưu hình ảnh, Docker sử dụng lại các lớp đã có, điều này giúp tiết kiệm không gian đáng kể.

Mã bên dưới cho thấy cách mỗi lệnh trong Dockerfile tạo một lớp mới:
# Sử dụng hình ảnh cơ sở
FROM python:3.8

# Tạo một lớp
RUN pip install flask 

# Thêm một lớp khác.
COPY . /app

Trong ví dụ này, chúng tôi sử dụng hình ảnh python:3.8 như lớp cơ sở. Sau đó, chúng tôi thêm nhiều lớp bằng cách cài đặt gói Flask và sao chép các tệp. Mỗi hoạt động này thêm một lớp mới vào hình ảnh.

Dockerfile là gì và nó được sử dụng để làm gì?

Dockerfile là một tệp văn bản chứa các hướng dẫn (lệnh) được thực thi tự động khi chúng ta xây dựng hình ảnh Docker. Trong tệp này, chúng tôi tuần tự đặt tất cả thông tin cần thiết để tạo ra hình ảnh.

Khi chúng ta muốn tạo hình ảnh bằng Dockerfile, chúng ta cần chạy lệnh sau trong một thư mục cụ thể:
docker build .

Trong trường hợp này, dấu chấm cho biết ngữ cảnh xây dựng (nghĩa là, nơi Docker tìm kiếm Dockerfile) là vị trí hiện tại (thư mục) mà chúng ta đang ở.

Vẻ đẹp của giải pháp này là sau khi định rõ hình ảnh trong Dockerfile, chúng tôi có thể tái tạo đầy đủ nó trên bất kỳ máy chủ nào Docker được cài đặt. Bất kể cấu hình máy chủ, chúng tôi đảm bảo sự lặp lại của môi trường phát triển và sản xuất của chúng tôi.

Dưới đây là nội dung Dockerfile mẫu:
# Hình ảnh cơ sở được sử dụng
FROM python:3

# Đặt thư mục làm việc trong container
WORKDIR /usr/src/app

# Sao chép các tệp yêu cầu và cài đặt phụ thuộc
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# Sao chép phần còn lại của code vào WORKDIR
COPY . .

# Xuất bản cổng ứng dụng sẽ chạy
EXPOSE 8080

# Lệnh sẽ chạy khi container bắt đầu
CMD [ "python", "./app.py" ]


Ứng dụng giờ đây cần có ở localhost:8080.

Tải xuống IT Flashcards Ngay bây giờ

Mở rộng kiến thức Docker của bạn với các thẻ học của chúng tôi.
Từ các nguyên tắc lập trình cơ bản đến nắm vững các công nghệ tiên tiến, IT Flashcards là hộ chiếu để bạn đạt được xuất sắc trong CNTT.
Tải xuống ngay và mở khóa tiềm năng của bạn trong thế giới công nghệ cạnh tranh ngày nay.