Docker: Environment Variables

Environment Variables ในบริบทของ Docker แบ่งออกเป็น 2 กลุ่มหลัก: ตัวแปรที่ใช้ควบคุมพฤติกรรมของ Docker Engine/CLI และ ตัวแปรที่ส่งเข้าไปทำงานใน Container




Docker CLI & Engine Environment Variables

ตัวแปรที่ตั้งค่าบนเครื่อง Host เพื่อสั่งการทำงานของคำสั่ง docker หรือ Docker Daemon

ตัวแปรหน้าที่ / การใช้งาน
DOCKER_HOSTกำหนด URL หรือ Unix socket ของ Docker daemon (เช่น tcp://192.168.1.50:2375 หรือ unix:///var/run/docker.sock)
DOCKER_TLS_VERIFYเปิดใช้งานการยืนยันตัวตนผ่าน TLS (1 หรือ 0) เมื่อเชื่อมต่อกับ daemon ทางไกล
DOCKER_CERT_PATHชี้ตำแหน่งไดเรกทอรีที่เก็บใบรับรอง TLS (ca.pem, cert.pem, key.pem)
DOCKER_CONFIGกำหนดโฟลเดอร์เก็บไฟล์คอนฟิกของ Docker CLI (ค่าเริ่มต้นคือ ~/.docker)
DOCKER_BUILDKITเปิดใช้งานระบบ BuildKit (1 หรือ 0) สำหรับการ build image
DOCKER_CONTEXTระบุ Docker context ที่ต้องการเรียกใช้งานเป็นค่าเริ่มต้น
DOCKER_DEFAULT_PLATFORMกำหนด target platform อัตโนมัติเวลา build/run (เช่น linux/amd64, linux/arm64)
DOCKER_CONTENT_TRUSTบังคับตรวจสอบลายเซ็นดิจิทัลของ image ก่อน pull/push (1 เพื่อเปิดใช้งาน)



Docker Compose Environment Variables

ตัวแปรที่ใช้ควบคุมพฤติกรรมของ Docker Compose

ตัวแปรหน้าที่ / การใช้งาน
COMPOSE_FILEระบุพาธของไฟล์ compose (เช่น docker-compose.yml:docker-compose.prod.yml)
COMPOSE_PROJECT_NAMEตั้งชื่อโปรเจกต์ (ค่าเริ่มต้นจะใช้ชื่อโฟลเดอร์)
COMPOSE_PROFILESกำหนด profiles ที่ต้องการรัน (เช่น frontend,debug)
COMPOSE_ENV_FILESระบุไฟล์ .env ที่ต้องการโหลดล่วงหน้า



Container Environment Variables

ตัวแปรที่ส่งเข้าไปให้ Application ภายใน Container ใช้งาน สามารถกำหนดได้หลายวิธี

  • ผ่านคำสั่ง CLI:

    YAML

    YAML

    docker run -e NODE_ENV=production -e PORT=8080 my-app
    
  • ผ่านไฟล์ .env / env-file:

    YAML

    YAML

    docker run --env-file .env.production my-app
    
  • กำหนดใน Dockerfile:

    YAML

    YAML

    ENV APP_ENV=production
    ENV PORT=3000
    
  • กำหนดใน docker-compose.yml:

    YAML

    YAML

    services:
      web:
        image: node:alpine
        environment:
          - NODE_ENV=production
          - DB_HOST=db
        env_file:
          - .env
    
  • Exit mobile version