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

도커(Docker)는 운영 체제 수준의 가상화 도구로, 애플리케이션을 컨테이너 형태로 실행하고 관리하는 데 사용됩니다. 컨테이너는 격리된 환경에서 실행되며, 이는 다른 호스트 시스템과는 독립적으로 동작할 수 있음을 의미합니다.

그러나 때로는 도커 컨테이너와 호스트 간에 데이터를 공유해야 할 수도 있습니다. 환경 변수는 이러한 데이터를 공유하는 간편하고 일반적인 방법 중 하나입니다. 이번 글에서는 도커 컨테이너와 호스트 간에 환경 변수를 공유하는 방법에 대해 알아보겠습니다.

환경 변수란?

환경 변수는 컴퓨터 시스템과 프로세스 간에 정보를 전달하는 데 사용되는 값입니다. 운영 체제는 이러한 변수를 저장하고 프로그램이 실행될 때 필요한 값을 가져올 수 있습니다. 환경 변수는 다양한 설정을 저장하고 애플리케이션 간의 상호 작용에 사용되기도 합니다.

도커 컨테이너와 환경 변수 공유하기

도커는 컨테이너 내부에 독자적인 환경 변수를 설정할 수 있도록 지원하고 있습니다. 하지만 기본적으로 컨테이너는 독립된 환경을 가지기 때문에 호스트의 환경 변수에 접근할 수 없습니다. 따라서 컨테이너와 호스트 간의 환경 변수를 공유하려면 몇 가지 추가적인 설정이 필요합니다.

호스트 환경 변수와 공유하기

도커에서는 -e 옵션을 사용하여 컨테이너에 환경 변수를 지정할 수 있습니다. -e 옵션 다음에는 변수_이름=값 형식으로 환경 변수를 지정합니다. 이렇게 지정한 환경 변수는 컨테이너 내부에서 사용할 수 있게 됩니다.

docker run -e "변수_이름=값" 이미지_이름

위의 명령어에서 변수_이름에는 호스트의 환경 변수 이름을, 에는 해당 환경 변수의 값을 입력하면 됩니다.

컨테이너 환경 변수와 호스트로 전달하기

호스트의 환경 변수를 컨테이너에 전달하기 위해서는 --env-file 옵션을 사용할 수 있습니다. 이 옵션은 특정 파일에 정의된 환경 변수를 컨테이너에 전달합니다.

docker run --env-file 파일_경로 이미지_이름

위의 명령어에서 파일_경로는 환경 변수를 지정한 파일의 경로를 나타냅니다. 이 파일은 각 줄마다 변수_이름=값 형식으로 환경 변수를 지정해야 합니다. 도커는 이 파일을 읽어 컨테이너에 환경 변수로 전달합니다.

Python으로 환경 변수 읽기

파이썬에서는 os 모듈을 사용하여 환경 변수에 접근할 수 있습니다. os.environ은 현재 환경 변수를 포함하는 딕셔너리를 제공합니다.

import os

value = os.environ.get('변수_이름')

위의 코드에서 변수_이름에는 읽고자 하는 환경 변수의 이름을 입력하면 됩니다. os.environ.get() 메소드를 사용하여 해당 환경 변수의 값을 가져올 수 있습니다.

마무리

도커 컨테이너와 호스트 간에 환경 변수를 공유하기 위해서는 추가적인 설정이 필요합니다. 호스트 환경 변수를 컨테이너에 전달하거나, 컨테이너 내부에서 독립적인 환경 변수를 설정하는 방법을 사용할 수 있습니다. 이러한 방법을 통해 환경 변수를 공유하여 도커 컨테이너와 호스트 간에 데이터를 효율적으로 전달할 수 있습니다.

반드시 도커 컨테이너와 호스트의 특정 상황이나 요구사항에 따라 최적의 방법을 선택하고 적용해야 합니다.