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

도커(Docker)는 컨테이너 기반의 가상화 플랫폼으로, 애플리케이션을 격리된 환경에서 실행할 수 있게 해줍니다. 이러한 컨테이너 환경에서는 애플리케이션 실행에 필요한 환경 변수가 중요하게 작용합니다. 도커 컨테이너 안에서 실행되는 애플리케이션은 호스트 환경 변수에 접근하기 어렵기 때문에, 컨테이너와 호스트 간에 환경 변수를 공유하는 방법이 필요합니다.

이 글에서는 도커 컨테이너와 호스트 간의 환경 변수 공유를 파이썬을 예시로 설명하겠습니다. 파이썬은 많은 웹 애플리케이션과 데스크톱 애플리케이션에서 사용되는 인기 있는 프로그래밍 언어입니다.

도커 컨테이너에서 환경 변수 사용하기

도커 컨테이너는 자체적으로 독립된 환경을 가지고 있습니다. 기본적으로 컨테이너 내부에서 호스트의 환경 변수에 직접 접근할 수 있는 방법은 없습니다. 하지만 도커는 이 문제를 해결하기 위해서 환경 변수를 컨테이너에 전달할 수 있는 옵션을 제공합니다.

예를 들어, run 명령어를 사용하여 도커 컨테이너를 실행하고 --env 또는 -e 옵션을 사용하여 환경 변수를 전달할 수 있습니다. 아래는 파이썬 애플리케이션을 실행하기 위해 환경 변수를 전달하는 예시입니다.

docker run --env MY_VARIABLE=my_value my_python_app

위 명령어는 MY_VARIABLE이라는 환경 변수에 my_value라는 값을 할당하여 my_python_app라는 파이썬 애플리케이션을 실행합니다. 이러한 방식으로 도커 컨테이너 내부에서 환경 변수를 사용할 수 있습니다.

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

도커 컨테이너와 호스트 간의 환경 변수 공유는 컨테이너 내부의 환경 변수를 호스트 환경 변수로 전달함으로써 가능합니다. 파이썬을 예시로 들어 설명해보겠습니다.

import os

my_variable = os.environ.get('MY_VARIABLE')
print(f"My variable value: {my_variable}")

위의 코드는 파이썬에서 os 모듈을 사용하여 환경 변수를 가져오고, MY_VARIABLE이라는 환경 변수의 값을 출력하는 예시입니다.

호스트 환경 변수를 도커 컨테이너와 공유하기 위해서는 아래의 단계를 따라야 합니다.

  1. 호스트 환경 변수를 설정합니다. 예를 들어, export MY_VARIABLE=my_value 명령어로 환경 변수를 설정할 수 있습니다.
  2. 도커 컨테이너 실행 시 --env-file 옵션을 사용하여 호스트 환경 변수 파일을 전달합니다. 예를 들어, --env-file my_env_file.txt로 파일을 전달할 수 있습니다.

my_env_file.txt 파일 내부는 환경 변수와 값을 포맷에 맞게 작성해야 합니다. 예를 들어, 아래와 같이 작성할 수 있습니다.

MY_VARIABLE=my_value

이제 파이썬 애플리케이션에서 os.environ.get 함수를 사용하여 환경 변수 값을 가져올 수 있습니다. 이렇게 함으로써 도커 컨테이너와 호스트 간 환경 변수를 공유할 수 있습니다.

결론

도커 컨테이너와 호스트 간의 환경 변수 공유는 중요한 문제입니다. 환경 변수는 애플리케이션 실행에 필수적인 값들을 저장하고 전달하기 때문에, 도커 컨테이너 내에서도 호스트의 환경 변수를 사용할 수 있어야 합니다. 도커는 --env 또는 -e 옵션을 사용하여 도커 컨테이너에 환경 변수를 전달할 수 있으며, --env-file 옵션을 사용하여 호스트 환경 변수 파일을 컨테이너로 전달할 수 있습니다. 이러한 방법을 사용하여 도커 컨테이너와 호스트 간 환경 변수를 공유할 수 있습니다.

더 많은 도커와 파이썬 관련 정보를 알고 싶다면 도커 공식 문서파이썬 공식 문서를 참고해주세요.