Docker - Container và Hosts

Xin chào, những người yêu thích công nghệ! Tôi rất vui mừng được bắt đầu hành trình Docker cùng các bạn. Là giáo viên ảo với nhiều năm kinh nghiệm, tôi sẽ hướng dẫn các bạn qua thế giới thú vị của các container và host. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - chúng ta sẽ bắt đầu từ những kiến thức cơ bản và dần dần nâng cao. Hãy cùng nhau khám phá nhé!

Docker - Container & Hosts

Docker Images

Hãy tưởng tượng bạn đang chuẩn bị cho một chuyến đi. Bạn sẽ lập một danh sách tất cả những gì bạn cần, phải không? Đó chính xác là điều mà một Docker image là - một bản đồ của tất cả những gì một container cần để chạy. Nó giống như một công thức cho ứng dụng của bạn, bao gồm mã nguồn, môi trường chạy, thư viện và công cụ hệ thống.

Tạo Docker Image Đầu Tiên

Hãy tạo một Docker image đơn giản cho một ứng dụng "Hello, World!":

# Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY . /app
CMD ["python", "hello.py"]

Bây giờ, hãy phân tích điều này:

  1. FROM python:3.9-slim: Điều này giống như nói, "Tôi muốn bắt đầu với một môi trường Python 3.9 tối thiểu."
  2. WORKDIR /app: Chúng ta đang thiết lập không gian làm việc, giống như tạo một thư mục mới cho dự án của chúng ta.
  3. COPY . /app: Chúng ta đang sao chép các tệp本地 vào container.
  4. CMD ["python", "hello.py"]: Đây là lệnh sẽ chạy khi chúng ta khởi động container.

Để xây dựng image này, chúng ta sẽ chạy:

docker build -t my-hello-world .

Chạy một Container

Bây giờ chúng ta đã có image, hãy mang nó vào cuộc sống! Chạy một container giống như khởi động một máy tính ảo đã cài đặt sẵn ứng dụng của bạn.

Chạy Container Cơ Bản

docker run my-hello-world

Lệnh này sẽ khởi động một container dựa trên image my-hello-world và chạy script hello.py.

Chế Độ Interactive

Đôi khi, bạn muốn tương tác với container. Điều này giống như mở một terminal trực tiếp trong container:

docker run -it my-hello-world /bin/bash

Các flag -it làm cho container tương tác, và /bin/bash khởi động một shell bash.

Liệt Kê Tất Cả Các Container

Khi bạn làm việc với Docker, bạn sẽ tạo ra nhiều container. Điều quan trọng là phải theo dõi chúng. Hãy tưởng tượng này như kiểm tra xem哪些 ứng dụng đang chạy trên máy tính của bạn.

docker ps

Lệnh này hiển thị tất cả các container đang chạy. Để xem tất cả các container, bao gồm cả những container đã dừng:

docker ps -a

Dưới đây là bảng tóm tắt các tùy chọn của docker ps:

Tùy chọn Mô tả
-a, --all Hiển thị tất cả các container (mặc định chỉ hiển thị đang chạy)
-q, --quiet Chỉ hiển thị ID container
-s, --size Hiển thị kích thước tệp tổng cộng
--format In container bằng cách sử dụng một mẫu Go

Dừng một Container

Giống như đóng một ứng dụng trên máy tính của bạn, bạn có thể dừng một container khi bạn đã xong việc với nó.

Dừng Nhẹ

docker stop <container_id>

Lệnh này gửi một tín hiệu SIGTERM, cho phép container dừng một cách nhẹ nhàng.

Dừng Cưỡng Bức

docker kill <container_id>

Điều này giống như强制退出 một ứng dụng. Sử dụng nó khi docker stop không hoạt động.

Xóa một Container

Sau khi dừng một container, bạn có thể muốn xóa nó hoàn toàn:

docker rm <container_id>

Mẹo nhỏ: Bạn có thể kết hợp dừng và xóa trong một lệnh:

docker rm -f <container_id>

Kết Luận

Chúc mừng! Bạn đã迈出了进入Docker容器和主机世界的第一步。 Nhớ rằng, làm việc với Docker giống như quản lý một đội tàu nhỏ, chuyên dụng. Mỗi container là một môi trường tự-contained, sẵn sàng chạy ứng dụng của bạn một cách nhất quán trên bất kỳ hệ thống nào.

Khi chúng ta kết thúc, đây là một analogies vui vẻ: Docker containers giống như xe tải bán đồ ăn. Mỗi xe tải (container) có tất cả những gì cần thiết để làm và phục vụ món đặc sản của nó (chạy ứng dụng của bạn). Bạn có thể dễ dàng di chuyển các xe tải này, khởi động chúng hoặc gói chúng lại khi cần.

Trong bài học tiếp theo, chúng ta sẽ深入研究 về mạng Docker và dữ liệu persistence. Đến那个时候, chúc các bạn vui vẻ trong việc tạo container!

Credits: Image by storyset