ENTRYPOINT와 CMD는 모두 container가 시작될 때 실행되는 것을 정의하지만, 서로 다른 역할을 하며 특정 방식으로 상호작용합니다. 그 차이(와 두 가지 형식 — exec 대 shell)를 이해하는 것은 올바르게 동작하는 Dockerfile을 작성하는 데 중요합니다.
CMD — 기본 명령(재정의 가능)
CMD ["node", "server.js"]
# → container가 시작될 때의 기본 명령
# → 그러나 실행 시 명령을 전달하면 대체됨:
# docker run myapp echo hello → node server.js 대신 "echo hello" 실행
는 을 제공하며, 에 주어진 모든 명령으로 됩니다.
