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

Tài liệu tham khảo Docker: Hướng dẫn nhanh cho lập trình viên

Đăng vào 7 tháng trước

• 5 phút đọc

Chủ đề:

KungFuTech

Tài liệu tham khảo Docker: Hướng dẫn nhanh cho lập trình viên

Giới thiệu

Docker là một nền tảng container hóa cho phép bạn đóng gói các ứng dụng và các phụ thuộc của chúng vào các container nhẹ và di động. Bài viết này cung cấp một tài liệu tham khảo nhanh chóng giúp bạn bắt đầu và làm việc hiệu quả với Docker.


1. Cơ bản về Docker

Kiểm tra phiên bản Docker

Để kiểm tra phiên bản Docker đang cài đặt, bạn có thể sử dụng lệnh sau:

Copy
docker --version

Liệt kê các container đang chạy

Để xem danh sách các container đang chạy, sử dụng lệnh:

Copy
docker ps

Liệt kê tất cả các container (đang chạy + đã dừng)

Để liệt kê tất cả các container, bạn có thể sử dụng lệnh:

Copy
docker ps -a

Liệt kê tất cả các hình ảnh

Nếu bạn muốn xem tất cả các hình ảnh đã tải về, sử dụng:

Copy
docker images

Dừng một container

Để dừng một container đang chạy, sử dụng lệnh sau:

Copy
docker stop <container_id>

Xóa một container

Để xóa một container, bạn có thể sử dụng lệnh:

Copy
docker rm <container_id>

Xóa một hình ảnh

Để xóa một hình ảnh, lệnh sẽ là:

Copy
docker rmi <image_name>

2. Làm việc với Hình ảnh

Kéo một hình ảnh từ Docker Hub

Để tải một hình ảnh từ Docker Hub, sử dụng lệnh:

Copy
docker pull <image_name>:<tag>

Xây dựng một hình ảnh từ Dockerfile

Nếu bạn muốn xây dựng một hình ảnh từ Dockerfile, hãy sử dụng:

Copy
docker build -t <image_name>:<tag> .

Chạy một container từ một hình ảnh

Để chạy một container từ một hình ảnh, thực hiện:

Copy
docker run -d --name <container_name> <image_name>:<tag>

Chạy container với ánh xạ cổng

Nếu bạn cần ánh xạ cổng, hãy sử dụng lệnh:

Copy
docker run -d -p 8080:80 <image_name>

3. Các yếu tố cơ bản của Dockerfile

Cấu trúc cơ bản của Dockerfile

Dưới đây là một ví dụ về cấu trúc cơ bản của Dockerfile:

Copy
# Sử dụng hình ảnh cơ sở
FROM node:18

# Thiết lập thư mục làm việc
WORKDIR /app

# Sao chép các file package và cài đặt phụ thuộc
COPY package*.json ./
RUN npm install

# Sao chép mã nguồn ứng dụng
COPY . .

# Mở cổng và khởi động ứng dụng
EXPOSE 3000
CMD ["node", "index.js"]

4. Cơ bản về Docker Compose

Ví dụ docker-compose.yml cho Node.js + MongoDB

Dưới đây là một ví dụ về tệp docker-compose.yml:

Copy
version: '3'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    depends_on:
      - mongo

  mongo:
    image: mongo:6
    ports:
      - "27017:27017"

Các lệnh hữu ích

Một số lệnh bạn có thể sử dụng với Docker Compose bao gồm:

Copy
docker-compose up        # Khởi động tất cả các dịch vụ
docker-compose down      # Dừng tất cả các dịch vụ
docker-compose logs -f   # Theo dõi logs

5. Các lệnh Docker hữu ích

Xem logs của container

Để xem logs của một container, sử dụng lệnh:

Copy
docker logs -f <container_id>

Thực thi một lệnh trong container đang chạy

Nếu bạn cần thực thi một lệnh trong một container đang chạy, sử dụng:

Copy
docker exec -it <container_id> bash

Xóa tất cả các container đã dừng

Để xóa tất cả các container đã dừng, bạn có thể sử dụng:

Copy
docker container prune

Xóa hình ảnh không sử dụng

Để xóa hình ảnh không còn sử dụng, lệnh sẽ là:

Copy
docker image prune -a

Thực hành tốt nhất khi làm việc với Docker

  • Thường xuyên cập nhật Docker: Đảm bảo bạn luôn sử dụng phiên bản Docker mới nhất để có những tính năng và sửa lỗi mới.
  • Sử dụng Docker Compose cho các ứng dụng phức tạp: Khi làm việc với nhiều dịch vụ, hãy sử dụng Docker Compose để quản lý chúng dễ dàng hơn.
  • Tối ưu hóa Dockerfile: Giảm thiểu số lượng layer bằng cách gộp các lệnh RUN và sử dụng cache có sẵn.
  • Theo dõi và phân tích logs: Sử dụng các công cụ như ELK stack để theo dõi và phân tích logs của các container.

Những cạm bẫy thường gặp

  • Không xóa các container và hình ảnh không cần thiết: Điều này có thể dẫn đến việc chiếm dụng không gian ổ đĩa.
  • Không thiết lập đúng quyền truy cập: Đảm bảo rằng các container có quyền truy cập đúng vào các tài nguyên cần thiết.

Mẹo hiệu suất

  • Sử dụng multi-stage builds: Giúp giảm kích thước hình ảnh cuối cùng bằng cách chỉ sao chép những gì cần thiết.
  • Sử dụng volumes: Giúp tối ưu hóa hiệu suất cho các ứng dụng cần lưu trữ dữ liệu.

Giải quyết sự cố

  • Container không khởi động: Kiểm tra logs để tìm hiểu nguyên nhân bằng lệnh docker logs -f <container_id>.
  • Lỗi cổng bị chiếm dụng: Đảm bảo rằng cổng mà bạn đang cố gắng ánh xạ không bị chiếm dụng bởi một ứng dụng khác.

Kết luận

Docker giúp đơn giản hóa việc triển khai, đảm bảo tính nhất quán và làm cho việc mở rộng trở nên dễ dàng hơn. Hãy giữ tài liệu tham khảo này bên mình trong quá trình phát triển và thử nghiệm với các container. Nếu bạn có bất kỳ câu hỏi nào hoặc cần hỗ trợ thêm, hãy tham gia cộng đồng Docker để nhận được sự giúp đỡ từ những lập trình viên khác.


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

1. Docker là gì?

Docker là một nền tảng cho phép bạn chạy các ứng dụng trong các container độc lập và nhẹ nhàng.

2. Tôi có thể sử dụng Docker cho ứng dụng nào?

Docker có thể được sử dụng cho hầu hết mọi loại ứng dụng, bao gồm Node.js, Python, Java, và nhiều hơn nữa.

3. Có cần phải học nhiều để sử dụng Docker không?

Docker có thể có một chút đường cong học tập, nhưng với tài liệu tham khảo này, bạn có thể nhanh chóng làm quen với các lệnh cơ bản.

4. Docker và ảo hóa có gì khác nhau?

Docker sử dụng container để chạy ứng dụng, trong khi ảo hóa sử dụng máy ảo, điều này làm cho Docker nhẹ hơn và nhanh hơn.

Tài nguyên tham khảo

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

Nội dung bài viết

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