도커(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
이라는 환경 변수의 값을 출력하는 예시입니다.
호스트 환경 변수를 도커 컨테이너와 공유하기 위해서는 아래의 단계를 따라야 합니다.
- 호스트 환경 변수를 설정합니다. 예를 들어,
export MY_VARIABLE=my_value
명령어로 환경 변수를 설정할 수 있습니다. - 도커 컨테이너 실행 시
--env-file
옵션을 사용하여 호스트 환경 변수 파일을 전달합니다. 예를 들어,--env-file my_env_file.txt
로 파일을 전달할 수 있습니다.
my_env_file.txt
파일 내부는 환경 변수와 값을 포맷에 맞게 작성해야 합니다. 예를 들어, 아래와 같이 작성할 수 있습니다.
MY_VARIABLE=my_value
이제 파이썬 애플리케이션에서 os.environ.get
함수를 사용하여 환경 변수 값을 가져올 수 있습니다. 이렇게 함으로써 도커 컨테이너와 호스트 간 환경 변수를 공유할 수 있습니다.
결론
도커 컨테이너와 호스트 간의 환경 변수 공유는 중요한 문제입니다. 환경 변수는 애플리케이션 실행에 필수적인 값들을 저장하고 전달하기 때문에, 도커 컨테이너 내에서도 호스트의 환경 변수를 사용할 수 있어야 합니다. 도커는 --env
또는 -e
옵션을 사용하여 도커 컨테이너에 환경 변수를 전달할 수 있으며, --env-file
옵션을 사용하여 호스트 환경 변수 파일을 컨테이너로 전달할 수 있습니다. 이러한 방법을 사용하여 도커 컨테이너와 호스트 간 환경 변수를 공유할 수 있습니다.
더 많은 도커와 파이썬 관련 정보를 알고 싶다면 도커 공식 문서와 파이썬 공식 문서를 참고해주세요.