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

도커 컨테이너 내에서 애플리케이션을 실행할 때, 종종 환경 변수를 사용해야 합니다. 환경 변수는 애플리케이션의 동작을 제어하거나 구성하기 위해 사용되는 변수입니다. 예를 들어, 데이터베이스 연결 정보나 API 키와 같은 중요한 정보를 환경 변수로 설정할 수 있습니다. 하지만 도커 컨테이너는 독립된 환경에서 실행되기 때문에, 호스트의 환경 변수에 직접 접근할 수 없습니다.

이러한 상황에서 도커 컨테이너와 호스트 간에 환경 변수를 공유하기 위해서는 몇 가지 방법이 있습니다. 그 중에서도 가장 일반적으로 사용되는 방법은 -e 옵션을 사용하여 컨테이너 내부에서 환경 변수를 설정하는 것입니다.

아래는 Python 애플리케이션을 도커 컨테이너로 실행하면서 호스트의 환경 변수를 사용하는 예시 코드입니다.

import os

api_key = os.environ.get('API_KEY')
database_host = os.environ.get('DATABASE_HOST')

def main():
    # 애플리케이션 로직 작성
    pass

if __name__ == "__main__":
    main()

위의 코드에서 os.environ.get() 함수를 사용하여 환경 변수의 값을 가져옵니다. get() 함수는 주어진 환경 변수의 값을 반환하며, 만약 해당 환경 변수가 존재하지 않으면 None을 반환합니다.

도커 컨테이너를 실행할 때, -e 옵션을 사용하여 호스트의 환경 변수 값을 컨테이너 내부에서 사용할 수 있습니다. 예를 들어, 다음과 같이 명령어를 실행할 수 있습니다.

docker run -e API_KEY=abcdefg -e DATABASE_HOST=example.com my_app

위의 명령어는 my_app 이미지를 실행하면서 API_KEYDATABASE_HOST 환경 변수를 설정합니다. 컨테이너 내부에서는 Python 애플리케이션에서 환경 변수 값을 가져와 사용할 수 있습니다.

이렇게 함으로써 도커 컨테이너와 호스트 간에 환경 변수를 공유할 수 있습니다. 이를 통해 도커 컨테이너 내부에서 애플리케이션을 구성하거나 중요한 정보를 안전하게 관리할 수 있습니다.