0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng Dẫn Chi Tiết Về Các Lệnh Docker Thông Dụng Nhất Cho Lập Trình Viên

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

• 3 phút đọc

Hướng Dẫn Các Câu Lệnh Docker Thông Dụng

Docker là một công cụ mạnh mẽ giúp lập trình viên dễ dàng quản lý và triển khai ứng dụng. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu về nội dung cơ bản của Dockerfile, cấu trúc FileSystem trong Docker container, và một số lệnh Docker phổ biến để quản lý containers, images, networks và volumes.

1. Nội Dung Cơ Bản Của Dockerfile

Ví dụ Về Dockerfile

Dưới đây là mẫu Dockerfile điển hình được sử dụng để xây dựng một dịch vụ Golang với multi-stage builds và cài đặt tiện ích cần thiết:

Copy
# Giai đoạn 1: Build Stage
FROM golang:1.19 AS builder

ENV GO111MODULE=on \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN go build -o myapp .

# Giai đoạn 2: Final Image
FROM alpine:3.15

RUN apk add --no-cache curl

ENV PORT=8080

RUN addgroup -S appgroup && adduser -S appuser -G appgroup

WORKDIR /app

COPY --from=builder /app/myapp .
RUN chown -R appuser:appgroup /app

EXPOSE 8080
USER appuser

ENTRYPOINT ["./myapp"]
CMD ["--help"]

Giải Thích Các Thành Phần

  • Giai Đoạn 1: Xây dựng ứng dụng bằng cách tạo một hình ảnh từ golang.
  • Giai Đoạn 2: Tạo hình ảnh cuối cùng sử dụng alpine, cài đặt tiện ích cần thiết và sao chép tệp thực thi từ giai đoạn đầu.

2. Cấu Trúc FileSystem Của Docker Container

Docker container có cấu trúc filesystem dựa trên một minimal Linux root filesystem. Điều này giúp giảm kích thước và tối ưu hóa hiệu suất. Cấu trúc thư mục phổ biến bao gồm:

Copy
/
├── bin/  
├── dev/  
├── etc/  
├── home/  
├── lib/  
├── media/  
├── mnt/  
├── proc/  
├── root/  
├── run/  
├── sbin/  
├── srv/  
├── tmp/  
├── usr/  
└── var/  

Mỗi thư mục có chức năng riêng, quản lý các tệp và thư mục cần thiết cho ứng dụng để đảm bảo tính nhẹ và hiệu quả của container.

3. Các Lệnh Docker Cơ Bản

3.1. Lệnh Container

  • Khởi chạy một container mới: docker run -d --name <container-name> <image-name>
  • Hiển thị danh sách containers: docker ps
  • Dừng một container: docker stop <container-id|container-name>
  • Xóa một container: docker rm <container-id|container-name>

3.2. Lệnh Image

  • Khởi tạo image: docker build -t <image-name>:<tag> <path-to-dockerfile>
  • Liệt kê images: docker images
  • Xóa image: docker rmi <image-id|image-name>
  • Tải xuống image: docker pull <image-name>:<tag>

3.3. Lệnh Network

  • Liệt kê networks: docker network ls
  • Tạo mới một network: docker network create <network-name>
  • Kết nối container với network: docker network connect <network-name> <container-name>
  • Kiểm tra thông tin network: docker network inspect <network-name>

3.4. Lệnh Volume

  • Khởi tạo volume: docker volume create <volume-name>
  • Liệt kê volumes: docker volume ls
  • Xóa volume: docker volume rm <volume-name>
  • Kiểm tra thông tin volume: docker volume inspect <volume-name>

3.5. Các Lệnh Khác

  • Hiển thị logs của container: docker logs <container-id|container-name>
  • Truy cập shell của container: docker exec -it <container-id|container-name> /bin/bash
  • Tag image: docker tag <image-name> <repository>/<image-name>:<tag>
  • Push image lên registry: docker push <repository>/<image-name>:<tag>
  • Dọn dẹp tài nguyên không sử dụng: docker system prune

Kết Luận

Trên đây là tổng hợp những thao tác cơ bản và thường gặp khi làm việc với Docker. Hy vọng bài viết này sẽ giúp bạn nắm vững được cách quản lý containers, images, networks và volumes một cách hiệu quả. Nếu bạn thấy bài viết hữu ích, hãy để lại phản hồi hoặc chia sẻ với mọi người nhé! Cảm ơn bạn đã đọc!
source: viblo

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