도커 환경변수, 명령어, 진입점

su-mmer·2022년 9월 15일
0

아묻따 도커 공부

목록 보기
8/18

환경변수 Runtime ENVironment

-e

docker run -e APP_COLOR=blue simple-webapp-color
도커에서 전역적으로 사용할 수 있는 환경변수 설정 가능
도커 컨테이너 내에 환경변수를 설정하고 싶을 때 사용
여러 환경변수를 사용하려면 run -e 옵션을 여러번 해야함
실행중인 컨테이너에 설정된 환경변수를 찾는 방법: docker inspect에서 config 부분

환경변수에서 포트 번호 받아오기

js 파일에서 위와 같이 환경변수를 이용해 port 번호를 받아올 수 있다.
그러려면 도커 파일에서 설정을 해주어야 한다.

환경변수 PORT의 기본값을 80으로 주고 EXPOSE에서 $을 사용해 환경변수임을 알린다.

docker run 실행시 -e PORT=8000 등의 명령으로 port를 변경할 수 있다.

위와 같이 환경변수 파일 .env파일을 만들어 run명령에서 환경변수를 일일이 설정하는 대신 파일을 실행시킬 수 있다.

run 명령시 --env-file ./.env 옵션을 사용하면 환경변수 파일을 실행시킨다.

빌드 인수 Build ARGument

환경 변수보다 더 유동적이게 빌드할 때마다 값을 변경할 수 있도록 빌드 인수를 설정한다.

Dockerfile에서 위와 같이 설정하게 되면 DEFAULT_PORT를 빌드 인수로 설정하게 되고 기본값을 80이다. 아무 설정 없이 이 Dockerfile로 빌드하면 port가 기본값인 80으로 설정된다.
build 명령 시 --build-arg DEFAULT_PORT=8000 옵션을 주면 DEFAULT_PORT가 8000으로 변경된다.


명령어, 진입점

명령어 CMD

Dockerfile 내에 작성
셸 형식으로 명령어를 있는 그대로 사용하거나 json 형태 가능

<셸 형식>
CMD command param1
CMD sleep 5
<json 형태>
CMD ["command", "param1"]
CMD ["sleep", "5"]

docker run command 명령

docker run [image] [command]
이미지 내에 지정된 기본 명령어(CMD) 무시

[Dockerfile]
FROM Ubuntu
CMD sleep 5

docker run ubuntu-sleeper sleep 10

진입점(ENTRYPOINT)

컨테이너가 시작될 때 실행할 프로그램 지정
Dockerfile 내에 작성

[Dockerfile]
FROM Ubuntu
ENTRYPOINT ["sleep"]

docker run ubuntu-sleeper 10

명령어에 대한 default 설정

[Dockerfile]
FROM Ubuntu
ENTRYPOINT ["sleep"]
CMD ["5"]

docker run ubuntu-sleeper -> 5초 sleep
docker run ubuntu-sleeper 10 -> 10초 sleep

런타임 도중 진입점 수정

docker run --entrypoint sleep2.0 ubutu-sleeper 10 -> sleep2.0 10

0개의 댓글