티스토리 뷰

목차



    반응형

    Docker 컨테이너 환경 변수

    Docker 컨테이너에서 환경 변수를 설정하는 방법은 애플리케이션의 유연성을 높이고 보안을 강화하는 중요한 기술입니다. 본 글에서는 환경 변수를 설정하는 다양한 방법과 실무에서 활용하는 팁을 소개합니다.

    Docker 컨테이너에서 환경 변수가 중요한 이유

    Docker 컨테이너는 가볍고 이동성이 뛰어나며, 다양한 환경에서 일관되게 실행될 수 있도록 설계되었습니다. 하지만 애플리케이션이 실행될 때 데이터베이스 접속 정보, API 키, 설정 값과 같은 환경별 설정을 적용하려면 환경 변수(Environment Variables)를 효과적으로 관리해야 합니다. 환경 변수는 코드 수정 없이 동적으로 설정 값을 변경할 수 있도록 해주며, 보안 및 유지보수 측면에서도 큰 이점을 제공합니다. 이 글에서는 Docker 컨테이너에서 환경 변수를 설정하는 다양한 방법과 실무에서 활용할 수 있는 팁을 소개합니다.

     

    Docker 컨테이너에서 환경 변수 설정하는 방법

    1. -e 옵션을 사용하여 환경 변수 설정

    Docker 컨테이너를 실행할 때 -e 옵션을 사용하여 환경 변수를 직접 설정할 수 있습니다.

    예제

    docker run -e DB_HOST=localhost -e DB_USER=root -e DB_PASS=secret my-docker-image
    

    이렇게 실행하면 컨테이너 내에서 DB_HOST, DB_USER, DB_PASS 환경 변수를 사용할 수 있습니다.

    2. --env-file 옵션을 사용하여 환경 변수 설정

    환경 변수가 많을 경우, 개별적으로 -e 옵션을 지정하는 대신 --env-file을 사용하여 환경 변수를 관리할 수 있습니다.

    예제

    # .env 파일 생성 (파일명: my-env-file)
    DB_HOST=localhost
    DB_USER=root
    DB_PASS=secret
    
    # Docker 실행 시 .env 파일을 사용
    docker run --env-file my-env-file my-docker-image
    

    이 방법을 사용하면 환경 변수를 보다 쉽게 관리하고, 여러 환경에서 일관되게 설정할 수 있습니다.

    3. Dockerfile에서 ENV 지시어를 사용하여 환경 변수 설정

    Docker 이미지를 빌드할 때 ENV 지시어를 사용하여 기본 환경 변수를 설정할 수 있습니다.

    예제

    # Dockerfile
    FROM node:14
    ENV NODE_ENV=production
    ENV PORT=3000
    

    이 방법을 사용하면 컨테이너가 실행될 때 기본적으로 설정된 환경 변수를 사용할 수 있습니다.

    4. Docker Compose에서 환경 변수 설정

    Docker Compose를 사용하면 environment 키 또는 env_file을 통해 환경 변수를 설정할 수 있습니다.

    예제 1: environment 키 사용

    version: '3'
    services:
      app:
        image: my-docker-image
        environment:
          - DB_HOST=localhost
          - DB_USER=root
          - DB_PASS=secret
    

    예제 2: env_file 사용

    version: '3'
    services:
      app:
        image: my-docker-image
        env_file:
          - my-env-file
    

    이 방법을 사용하면 환경 변수를 보다 체계적으로 관리할 수 있으며, 여러 개의 환경 파일을 사용할 수도 있습니다.

    5. 컨테이너 내부에서 환경 변수 확인

    컨테이너 내부에서 설정된 환경 변수를 확인하려면 printenv 명령어를 사용할 수 있습니다.

    예제

    docker run -e TEST_VAR=hello my-docker-image env
    

    또는 컨테이너 내부에서 직접 실행할 수도 있습니다.

    docker exec -it my-container-name printenv
    

    6. 보안이 중요한 환경 변수 관리

    환경 변수를 사용할 때 보안이 중요한 정보(API 키, 비밀번호 등)는 다음과 같은 방법으로 보호할 수 있습니다.

    • Docker Secret 사용: Docker Swarm을 사용하여 보안이 중요한 데이터를 저장
    • Kubernetes Secret 사용: Kubernetes 환경에서 환경 변수를 안전하게 관리
    • . env 파일을 Git에서 제외: 환경 파일을. gitignore에 추가하여 보안 유지

     

    Docker 환경 변수 설정 방법 요약

    Docker 컨테이너에서 환경 변수를 설정하는 방법은 여러 가지가 있으며, 프로젝트의 요구사항에 따라 적절한 방법을 선택할 수 있습니다.

    • -e 옵션 사용: 실행 시 개별적으로 환경 변수 설정
    • --env-file 사용: 여러 환경 변수를 한 파일에서 관리
    • Dockerfile에서 ENV 지시어 사용: 기본 환경 변수 설정
    • Docker Compose에서 environment 또는 env_file 사용: 여러 컨테이너의 환경 변수 관리
    • 보안이 중요한 환경 변수 관리: Docker Secret, Kubernetes Secret 활용

    환경 변수를 적절하게 활용하면 Docker 컨테이너의 재사용성을 높이고, 설정을 동적으로 변경할 수 있어 유지보수와 배포가 훨씬 쉬워집니다. 실무에서 Docker 환경 변수를 효과적으로 설정하여 보다 안정적인 애플리케이션을 운영해 보세요!

    반응형