클라우드와 컨테이너의 기초
FROM alpine
ENTRYPOINT ["ping", "-c", "3"]
CMD ["localhost"]위의 Dockerfile로 만든 이미지 pinger를 docker run pinger example.com으로 시작했다. 컨테이너 안에서 실행되는 명령으로 올바른 것은?
- Aping -c 3 localhost
- Bping -c 3 example.com
- Cexample.com(명령으로 실행하려다 오류가 된다)
정답과 해설 보기
정답: B. ping -c 3 example.com
exec 형식(JSON 배열)으로 쓴 ENTRYPOINT는 컨테이너에서 반드시 실행하는 명령이며, CMD는 그 기본 인수가 됩니다. docker run에서 이미지 이름 뒤에 쓴 인수는 CMD를 대체하고 ENTRYPOINT 뒤에 덧붙여지므로, ping -c 3 example.com이 실행됩니다. 인수 없이 docker run pinger로 하면 CMD의 localhost가 사용되어 ping -c 3 localhost가 됩니다. ENTRYPOINT 자체를 바꾸고 싶을 때는 docker run의 --entrypoint 옵션을 사용합니다.