0
0
Lập trình
Admin Team
Admin Teamtechmely

Học Docker chỉ trong 3 giờ cho lập trình viên

Đăng vào 6 ngày trước

• 5 phút đọc

Học Docker trong 3 Giờ

Docker đã trở thành một công cụ cực kỳ quan trọng trong việc phát triển và triển khai ứng dụng. Trong bài viết này, chúng ta sẽ cùng nhau khám phá Docker từ những khái niệm cơ bản nhất đến cách sử dụng thực tế, giúp bạn có thể tự tin triển khai ứng dụng của mình trong thời gian ngắn nhất.

Mục tiêu bài viết

  • Hiểu rõ về Docker và cách hoạt động của nó.
  • Biết cách cài đặt và cấu hình Docker.
  • Tạo và quản lý container cho ứng dụng.

Giới thiệu về Docker

Docker không phải là một máy ảo hoàn chỉnh, nhưng nó gần như vậy. Hãy tưởng tượng Docker là một máy ảo nhẹ chạy trên máy chủ của bạn. Thay vì mô phỏng toàn bộ hệ điều hành như một máy ảo truyền thống, Docker chia sẻ kernel và tài nguyên của máy chủ, đồng thời cung cấp cho mỗi container một hệ thống tệp, mạng và cổng riêng biệt.

Một số thuật ngữ quan trọng

  • Image: Là bản thiết kế, chứa mọi thứ cần thiết để chạy ứng dụng: mã nguồn, thư viện, phụ thuộc và các cấu hình môi trường.
  • Container: Là phiên bản đang chạy của một image. Nếu image giống như công thức nấu ăn, thì container là món ăn được chế biến từ công thức đó.

Yêu cầu trước khi bắt đầu

Trước khi bắt tay vào thực hành, hãy đảm bảo bạn đã chuẩn bị:

  • Kiến thức cơ bản về dòng lệnh.
  • Hiểu biết về Node.js và npm hoặc bất kỳ framework backend nào bạn đang container hóa.
  • Kiến thức cơ bản về mạng (cổng, máy chủ so với container).
  • Cài đặt Docker Desktop (Windows/Mac) hoặc Docker Engine (Linux).
  • Sử dụng docker-compose (thường được cài sẵn với Docker Desktop).
  • Git để quản lý mã nguồn. Bạn có thể sao chép repo thử nghiệm tại: Test repo.

Cài đặt Docker Desktop

Bước 1: Tải và cài đặt Docker Desktop

Hãy tải Docker Desktop từ trang web chính thức của Docker. Điều này sẽ giúp bạn không gặp rắc rối trong quá trình cài đặt.

Bước 2: Kiểm tra cài đặt

Sử dụng lệnh sau để kiểm tra phiên bản và đảm bảo rằng Docker đã được cài đặt thành công:

bash Copy
docker --version

Chạy container đầu tiên (Hello World)

Hình ảnh hello-world là một image đã được chuẩn bị sẵn có trên Docker Hub, giúp bạn hiểu cách hoạt động của một container đơn giản:

bash Copy
docker run hello-world

Tạo Dockerfile

Dockerfile là nơi mà Docker sử dụng để tạo ra một image. Không có Dockerfile, mỗi lần bạn chạy một container, bạn sẽ phải cài đặt Node.js, sao chép mã nguồn, thiết lập biến môi trường, mở cổng, và khởi động ứng dụng - điều này rất lặp đi lặp lại và dễ gây lỗi. Thay vào đó, hãy viết tất cả các bước này trong một Dockerfile. Sau đó, Docker sẽ tự động xây dựng image cho bạn.

Phân tích từng dòng trong Dockerfile

  1. FROM node:18: Xác định image cơ sở nào sẽ được sử dụng (ở đây là Node.js phiên bản 18).
  2. WORKDIR /usr/src/app: Đặt thư mục làm việc cho ứng dụng.
  3. COPY package*.json ./: Sao chép các tệp package.jsonpackage-lock.json vào container.
  4. RUN npm install: Cài đặt tất cả các phụ thuộc cho ứng dụng.
  5. COPY . .: Sao chép toàn bộ mã nguồn vào thư mục làm việc.
  6. EXPOSE 5000: Thông báo cho Docker rằng ứng dụng sẽ lắng nghe trên cổng 5000.
  7. CMD ["node", "src/app.js"]: Lệnh chạy khi container khởi động.

Docker Compose

Docker Compose là công cụ giúp bạn chạy nhiều container cùng một lúc. Hãy tạo một tệp docker-compose.yml để cấu hình các dịch vụ của bạn.

Cấu trúc tệp docker-compose.yml

  1. version: "3.9": Xác định phiên bản định dạng tệp Docker Compose.
  2. services:: Liệt kê tất cả các dịch vụ mà bạn sẽ sử dụng.
  3. backend:: Tên dịch vụ mà bạn sẽ sử dụng cho backend.
  4. build: .: Xây dựng Docker từ Dockerfile trong thư mục hiện tại.
  5. ports: - "5000:5000": ánh xạ cổng của container với cổng của máy chủ.
  6. depends_on: - mongodb: Thông báo cho Docker biết rằng dịch vụ này phụ thuộc vào dịch vụ MongoDB.

Một số lệnh Docker thường dùng

Lệnh cho image

  1. docker build -t myapp:latest .: Tạo một image từ Dockerfile.
  2. docker images: Hiển thị tất cả các image trên máy tính.
  3. docker rmi myapp:latest: Xóa một image không còn cần thiết.

Lệnh cho container

  1. docker run -d -p 5000:5000 myapp:latest: Khởi động một container từ image của bạn.
  2. docker ps: Hiển thị tất cả các container đang chạy.
  3. docker stop container_id: Dừng một container.
  4. docker rm container_id: Xóa một container.

Lệnh cho Docker Compose

  1. docker-compose up -d: Khởi động tất cả các dịch vụ trong nền.
  2. docker-compose down: Dọn dẹp và tắt tất cả các dịch vụ.

Mẹo và Thực hành tốt

  • Luôn kiểm tra lại các lệnh trước khi thực thi để đảm bảo không có lỗi xảy ra.
  • Sử dụng docker-compose để dễ dàng quản lý các dịch vụ.
  • Đảm bảo rằng bạn không mở cổng không cần thiết trên máy chủ để tăng cường bảo mật.

Kết luận

Docker là một công cụ mạnh mẽ giúp lập trình viên triển khai ứng dụng một cách dễ dàng và nhanh chóng. Bằng cách nắm vững các khái niệm và lệnh cơ bản, bạn có thể tối ưu hóa quy trình phát triển của mình. Hãy bắt đầu với Docker ngay hôm nay và khám phá những lợi ích mà nó mang lại cho bạn trong việc phát triển ứng dụng.

Câu hỏi thường gặp

  1. Docker có phải là máy ảo không?
    • Không, Docker là một công cụ quản lý container nhẹ hơn máy ảo.
  2. Tôi có thể sử dụng Docker trên hệ điều hành nào?
    • Docker hỗ trợ Windows, macOS và Linux.
  3. Có cần thiết phải tìm hiểu Docker không?
    • Có, Docker giúp bạn triển khai và quản lý ứng dụng dễ dàng hơn.

Hãy bắt đầu hành trình khám phá Docker của bạn ngay hôm nay!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào