Tạo tệp compose.yaml

Docker nâng cao

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Tệp văn bản, nhưng khoảng trắng quan trọng (như Python)
  • Dùng rộng rãi để cấu hình trong phát triển
  • Quy tắc có thể khó; chủ yếu căn thẳng hàng như ví dụ
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
Docker nâng cao

Các phần chính

  • Các phần khác nhau cho các thành phần khác nhau
  • services: liệt kê các container cần tải
  • networks: định nghĩa mạng
  • volumes: kiểm soát gắn volume
  • configs: cấu hình mà không cần ảnh tùy chỉnh
  • secrets: xử lý mật khẩu, token, khóa API, v.v.
  • Xem Docker Compose Documentation để biết thêm
services:
  ... # Định nghĩa container

networks: ... # Định nghĩa chi tiết mạng
volumes: ... # Định nghĩa yêu cầu lưu trữ
configs: ... # Định nghĩa cấu hình đặc biệt
secrets: ... # Định nghĩa mật khẩu / v.v.
1 https://docs.docker.com/compose/compose-file/
Docker nâng cao

Phần services

  • Định nghĩa mọi tài nguyên cần cho ứng dụng
  • Chủ yếu chỉ rõ container và ảnh sẽ dùng
  • Nhiều tùy chọn, nhưng áp dụng cho từng container
  • Thụt lề khi cần
  • Tiểu mục đầu là tên từng thành phần, theo sau là thiết lập
Docker nâng cao

Ví dụ services

services:

# Tên tài nguyên postgres:
# Tên container, nếu không sẽ ngẫu nhiên container_name: postgres
# Ảnh container sử dụng image: postgres:latest
# Bất kỳ ánh xạ cổng nào cần thiết ports: # Chi tiết mạng - "5432:5432"
# Tài nguyên tiếp theo pgadmin: ...
  • Tên tài nguyên
  • container_name:, tên gán cho container, nếu không sẽ ngẫu nhiên
  • image:, ảnh container cần dùng
  • ports:, danh sách ánh xạ cổng cần thiết
  • Sau đó là các tài nguyên tiếp theo
Docker nâng cao

Ghi chú bổ sung

  • Cú pháp config.yaml rất rộng
    • Chỉ bao quát một phần nhỏ tùy chọn compose.yaml
    • Hãy xem tài liệu!
  • Thường không cần tạo compose.yaml từ đầu
1 https://docs.docker.com/compose/compose-file/
Docker nâng cao

Ayo berlatih!

Docker nâng cao

Preparing Video For Download...