도커 파일 보다 보면 CMD 쓰는 데도 있고 ENTRYPOINT 쓰는 데도 있는데 둘이 뭐가 다른지 계속 헷갈리네요. 둘 다 컨테이너 뜰 때 뭔가 실행하는 거 아닌가요?
예를 들어 이런 이미지를 만들었다고 치면요.
FROM alpine
ENTRYPOINT ["echo"]
CMD ["Hello, World!"]
이 상태에서 그냥 실행하면(docker run 이미지) Hello, World! 가 잘 찍혀요. 근데 뒤에 인자를 붙여서 실행하면(docker run 이미지 안녕) 이번엔 안녕 이 찍히더라고요. echo 는 그대로 있고 뒤에 붙는 말만 바뀌는 느낌인데, 이게 정확히 무슨 원리인지 설명 좀 부탁드려요. 그냥 둘 중에 하나만 쓰면 안 되는 건가요?