[파이썬] 도커 컨테이너와 호스트 간 환경 변수 공유

도커(Docker)는 애플리케이션을 격리된 환경에서 실행할 수 있게 해주는 컨테이너 기반의 가상화 플랫폼입니다. 도커 컨테이너는 독립된 프로세스로 실행되며, 이러한 컨테이너는 격리된 파일 시스템과 네트워크를 가지고 있습니다.

환경 변수는 애플리케이션에게 중요한 데이터를 전달하는 데 사용되며, 도커 컨테이너와 호스트 간에도 환경 변수를 공유할 수 있습니다. 이는 컨테이너 내에서 실행되는 애플리케이션이 호스트의 환경 변수에 접근하여 필요한 설정 정보를 가져올 수 있게 해주는 중요한 기능입니다.

환경 변수 공유하기

도커 컨테이너와 호스트 간의 환경 변수 공유는 다양한 방법으로 수행할 수 있습니다. 여기서는 Python을 사용한 예제 코드를 통해 환경 변수를 공유하는 방법을 알아보겠습니다.

import os

# Host에서 환경 변수 가져오기
host_variable = os.getenv("HOST_VARIABLE")

# Docker 컨테이너에서 환경 변수 가져오기
container_variable = os.getenv("CONTAINER_VARIABLE")

print("Host 변수:", host_variable)
print("컨테이너 변수:", container_variable)

위의 코드는 os 모듈을 사용하여 환경 변수를 가져오는 예제입니다. os.getenv() 함수를 호출하여 주어진 환경 변수의 값을 가져올 수 있습니다. 호스트에서는 호스트의 환경 변수를, 컨테이너에서는 컨테이너의 환경 변수를 가져올 수 있습니다.

환경 변수 설정하기

환경 변수를 설정하는 방법은 호스트와 컨테이너의 설정 방법에 따라 다를 수 있습니다. 여기서는 컨테이너 설정 방법을 예제 코드를 통해 알아보겠습니다.

Dockerfile을 사용한 환경 변수 설정

Dockerfile을 사용하여 도커 이미지를 빌드할 때, 이미지 내부에 환경 변수를 설정할 수 있습니다.

FROM python:3.9

# 환경 변수 설정
ENV CONTAINER_VARIABLE=value

# 애플리케이션 실행
CMD ["python", "app.py"]

위의 Dockerfile 예제에서는 ENV 명령을 사용하여 CONTAINER_VARIABLE 환경 변수를 설정하였습니다. 그리고 CMD 명령을 통해 애플리케이션을 실행하도록 설정하였습니다.

컨테이너 실행 시 환경 변수 설정

도커 컨테이너를 실행할 때, 컨테이너 실행 명령어에 환경 변수를 설정할 수 있습니다. 아래 예제는 docker run 명령어를 사용하여 컨테이너를 실행하면서 환경 변수를 설정하는 방법입니다.

docker run -e "CONTAINER_VARIABLE=value" my_container

위의 명령어에서 -e 옵션을 사용하여 CONTAINER_VARIABLE 환경 변수를 설정하였습니다.

결론

도커 컨테이너와 호스트 간의 환경 변수 공유는 애플리케이션 개발과 배포 과정에서 중요한 요소입니다. 이를 통해 애플리케이션은 필요한 설정 정보를 동적으로 가져올 수 있고, 환경 변수를 통해 애플리케이션의 설정을 유연하게 구성할 수 있습니다.