Docker기본 흐름

env file과 변수 전달

컨테이너 실행 시 환경 변수를 넘기는 기본 방법과 `--env-file`의 역할을 정리합니다.

마지막 수정 2026년 3월 21일

기본 패턴

bash
docker run --env-file .env -e PORT=4000 my-app

설명

  • 환경 변수는 "같은 이미지"를 서로 다른 설정으로 실행할 수 있게 만드는 가장 기본적인 통로입니다.
  • -e KEY=value는 한두 개 값을 빠르게 넘길 때 편하고, --env-file .env는 설정 수가 많을 때 관리가 쉬워집니다.
  • 보통 이미지 안에는 애플리케이션 코드와 기본값만 넣고, 실제 운영 값은 실행 시점에 분리해서 주입하는 편이 재사용성과 배포 유연성 면에서 좋습니다.
  • Compose를 쓸 때도 environment, env_file을 통해 비슷한 아이디어를 이어갈 수 있습니다.
  • 중요한 건 .env 파일이 "편한 설정 묶음"이라는 점이지, 자동으로 안전한 secret storage가 되는 것은 아니라는 점입니다.

짧은 예제

yaml
services:
  app:
    image: my-app
    env_file:
      - .env
    environment:
      PORT: "4000"

빠른 정리

방식상황
-e값 몇 개만 바로 전달
--env-file설정 파일로 묶어서 전달
Compose environment서비스별 명시적 설정
Compose env_file공통 설정 파일 재사용

주의할 점

.env 파일은 비밀 정보 관리 도구가 아닙니다. 저장소 포함 여부, 배포 환경 분리, 실제 secret 관리 방식까지 함께 설계해야 운영 사고를 줄일 수 있습니다.

참고 링크

2 sources