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

도커(Docker)는 컨테이너 기반의 가상화 기술을 제공하여 소프트웨어를 더욱 쉽게 개발, 배포 및 실행할 수 있게 해줍니다. 도커 컨테이너는 가상화된 환경에서 독립적으로 실행되며, 마치 가상 머신처럼 동작합니다. 컨테이너 간에는 격리된 환경이 유지되지만, 때로는 호스트와 컨테이너 사이에 정보를 공유해야 할 때가 있습니다. 이 중에서도 환경 변수는 컨테이너와 호스트 간에 가장 간단하고 유용한 정보를 공유하는 방법 중 하나입니다.

환경 변수란?

환경 변수는 운영 체제나 소프트웨어에서 사용되는 값을 저장하는 변수입니다. 예를 들어, 시스템의 언어 설정, 파일 경로, 데이터베이스 연결 정보 등은 환경 변수를 통해 제어할 수 있습니다. 일반적으로 환경 변수는 키와 값의 쌍으로 구성되며, 해당 값을 어디서든 접근할 수 있습니다.

도커 컨테이너와 호스트 간 환경 변수 공유하기

도커 컨테이너 내에서 호스트의 환경 변수를 공유하기 위해서는 몇 가지 설정이 필요합니다. 아래는 Python을 사용하여 도커 컨테이너와 호스트 간에 환경 변수를 공유하는 방법의 예시입니다.

import os

# 호스트의 환경 변수 읽기
host_env_var = os.environ.get('HOST_ENV_VAR')

# 도커 컨테이너 내에서 환경 변수 사용
if host_env_var:
    print(f"The value of HOST_ENV_VAR is: {host_env_var}")
else:
    print("The HOST_ENV_VAR is not set.")

위의 예시 코드에서, os.environ.get('HOST_ENV_VAR')를 사용하여 호스트의 환경 변수 HOST_ENV_VAR를 가져올 수 있습니다. 이후 조건문을 사용하여 해당 환경 변수가 설정되었는지를 확인하고, 값을 출력하는 예시로 작성되었습니다.

도커 실행시 환경 변수 설정하기

도커 컨테이너를 실행할 때 환경 변수를 설정하려면 docker run 명령어의 -e 옵션을 사용할 수 있습니다. 아래는 HOST_ENV_VAR라는 환경 변수를 설정하여 컨테이너를 실행하는 예시입니다.

docker run -e HOST_ENV_VAR=value my_container_image

위의 예시에서 HOST_ENV_VAR은 환경 변수의 키이고, value는 해당 환경 변수의 값을 의미합니다. 이러한 방식으로 도커 컨테이너가 실행될 때 해당 환경 변수가 컨테이너 내에서 사용할 수 있게 됩니다.

결론

도커 컨테이너와 호스트 간에 환경 변수를 공유하는 것은 컨테이너 개발 및 배포 과정에서 매우 유용한 기능입니다. Python을 비롯한 다른 프로그래밍 언어에서도 간단하게 환경 변수를 읽고 사용할 수 있으므로, 환경 변수를 통해 컨테이너와 호스트의 상호작용을 개선할 수 있습니다.