우노
[Docker] CMD, ENTRYPOINT 차이 본문
요약
- CMD
- 컨테이너를 생성할 때만 실행됩니다. (docker run)
- 컨테이너 생성 시, 추가적인 명령어에 따라 설정한 명령어를 수정할 수 있습니다.
- ENTRYPOINT
- 컨테이너를 시작할 때마다 실행됩니다. (docker start)
- 컨테이너 시작 시, 추가적인 명령어 존재 여부와 상관 없이 무조건 실행됩니다.
CMD, ENTRYPOINT 명령어 작성 방법
- CMD ["<커맨드>", "<파라미터1>", "<파라미터2>"]
- CMD <커맨드> <파라미터1> <파라미터2>
- ENTRYPOINT ["<커맨드>", "<파라미터1>", "<파라미터2>"]
- ENTRYPOINT <커맨드> <파라미터1> <파라미터2>
CMD 예제
Dockerfile
FROM ubuntu CMD ["/bin/echo", "Before"]
docker run 실행 (추가 명령어가 없을 때)
docker run --name <container-name> <image-name> # Before
docker run 실행 (추가 명령어가 있을 때)
docker run --name <container-name> <image-name> echo "After" # After
CMD는 Dokerfile 내부에 여러 줄 작성할 수 있지만, 결국 가장 마지막 한줄만 사용됩니다.
ENTRYPOINT 예제
Dockerfile (ENTRYPOINT와 CMD가 같이 작성)
FROM ubuntu ENTRYPOINT ["/bin/echo", "Before ENTRYPOINT"] CMD ["Before CMD"]
docker run 실행
docker run --name <container-name> <image-name> # Before ENTRYPOINT Before CMD docker run --name <container-name> <image-name> echo "After CMD" # Before ENTRYPOINT After CMD
- ENTRYPOINT 명령어는 무조건 출력되고, 추가적인 명령어 여부에 따라 CMD 파라미터가 바뀌게 됩니다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] Dockerfile에서 Private Repo Clone하는 방법 (0) | 2023.06.10 |
---|---|
[Docker] docker build 시 Dockerfile 경로 지정 (2) | 2023.03.18 |
[Docker] 환경 변수 전달 (2) | 2023.02.14 |
[Docker] Docker run 옵션 종류 (3) | 2021.08.27 |
[Docker] Error response from daemon: conflict: unable to delete "" (must be forced) - image is referenced in multiple repositories (0) | 2021.08.19 |
Comments