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
옵션을 사용하면 환경변수 파일을 실행시킨다.
환경 변수보다 더 유동적이게 빌드할 때마다 값을 변경할 수 있도록 빌드 인수를 설정한다.
Dockerfile에서 위와 같이 설정하게 되면 DEFAULT_PORT를 빌드 인수로 설정하게 되고 기본값을 80이다. 아무 설정 없이 이 Dockerfile로 빌드하면 port가 기본값인 80으로 설정된다.
build 명령 시 --build-arg DEFAULT_PORT=8000
옵션을 주면 DEFAULT_PORT가 8000으로 변경된다.
Dockerfile 내에 작성
셸 형식으로 명령어를 있는 그대로 사용하거나 json 형태 가능
<셸 형식>
CMD command param1
CMD sleep 5
<json 형태>
CMD ["command", "param1"]
CMD ["sleep", "5"]
docker run [image] [command]
이미지 내에 지정된 기본 명령어(CMD) 무시
[Dockerfile]
FROM Ubuntu
CMD sleep 5
docker run ubuntu-sleeper sleep 10
컨테이너가 시작될 때 실행할 프로그램 지정
Dockerfile 내에 작성
[Dockerfile]
FROM Ubuntu
ENTRYPOINT ["sleep"]
docker run ubuntu-sleeper 10
[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