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:
# 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:
/
├── 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