카테고리 없음

[도커] 도커 6: 컨테이너 환경변수란? (+ Dockerfile ENV)

KyuminKim 2024. 11. 16. 23:20


지난번에는 Dockerfile을 통한 이미지 구축을 알아봤었다!

오늘은 그 중 ENV에 대해 알아보고, 컨테이너 환경변수도 알아보자!


컨테이너 환경변수?

🙋‍♀️ 환경변수?

환경변수는 다들 알고 있을 것이다.

 

백엔드 개발을 위해

springboot로 개발한다고 하면,

 

빌드 시 DB IP, DB password와 같은 값을 환경변수로 넣어주기도 한다!

export DB_IP=127.0.0.1

이렇게 환경변수를 지정하고,

java -jar app.jar

하여 빌드한다

 

즉, 환경변수는 외부 서버 구성 정보를 추가로 넣어주는 변수인 것이다!

(변경이 있을 때마다 그 정보만 바꿔서 적용 가능하다)

 

만일 이렇게 환경변수를 지정하는 경우,

# springboot - application.yml
spring:
  datasource:
    url: jdbc:mysql://${DB_IP}:3306/test_db

 

이런 식으로 환경 변수를

어플리케이션 코드에 적용하고 사용할 수 있다.

# golang
service_type = os.environ.get('SERVICE_TYPE')
service_port = int(os.environ.get('SERVICE_PORT'))

golang으로 서버를 구축했을 때에는 이렇게 환경변수를 가져올 수 있었다!

 

 

🙋‍♀️ 컨테이너 환경변수?

컨테이너 또한 같은 이유로 환경변수가 필요할 것이다.

 

그런데, env를 어떻게 지정할 수 있을까?


컨테이너 환경 변수 적용 1 : docker run -e

docker run, 즉 도커 컨테이너를 실행시키면서 env를 줄 수 있다.

docker run -e DB_NAME=test -e DB_PASSWORD=1234 wordpress

이렇게 wordpress 이미지에 대해 

DB_NAME = test,

DB_PASSWORD = 1234라는 environment를 사용할 수 있다.


컨테이너 환경 변수 적용 2 : 도커파일 ENV

FROM wordpress:latest
ENV DB_NAME=test
ENV DB_PASSWORD=1234

 

docker run -e와 동일하게 사용할 수 있다

 

docker에서 환경변수를 적용한 이후에는,

기존 환경변수 적용과 같은 방식으로 어플리케이션 코드를 수정하여 사용 가능하다!


이번 시간에는 ENV, 환경변수를 알아봤다!

 

다음 시간에는 도커 볼륨에 대해 알아보자!