우노
[Docker] 컨테이너 실행 상태 유지 지시문(CMD, ENTRYPOINT) 본문
들어가기 앞서,
- 컨테이너 생성 시, Dockerfile 하단 지시문(CMD, ENTRYPOINT)을 통해 컨테이너 실행 상태를 유지해주지 않는다면,
- 컨테이너는 생성된 뒤 실행 상태를 유지하지 않고 종료됩니다.
- 따라서, 해당 포스팅에선 컨테이너 실행 상태를 유지할 수 있는 간단한 지시문을 다뤄보겠습니다.
지시문 예제
FROM ubuntu
CMD ["sh", "-c", "tail -f /dev/null"]
- tail
- 로그 파일 또는 텍스트 파일의 내용을 보여주는 명령어입니다.
- f
- tail 명령어의 옵션 중 하나로,
- 파일의 내용을 실시간으로 모니터링하고 파일에 새로운 내용이 추가될 때마다 화면에 표시합니다.
- /dev/null
- 표준 출력(standard output)을 버릴 때 사용되는 특별한 파일입니다.
- 이 파일로 출력을 리디렉션하면 출력 내용이 실제로 저장되지 않고 버려집니다.
- 결론
- 해당 CMD 명령어는 컨테이너가 실행될 때 셸을 실행하고, 그 셸 내에서 /dev/null 파일을 모니터링하도록 tail -f /dev/null 명령어를 실행합니다.
- 따라서, 컨테이너가 다른 프로세스를 실행하지 않고 대기 상태로 유지됩니다.
- 해당 방법은 컨테이너 실행 상태를 유지하는 일반적인 방법 중 하나입니다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] Mac OS 환경에서 IntelliJ의 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 해결하기 (0) | 2023.09.20 |
---|---|
[Docker] CMD, ENTRYPOINT 지시문에 “sh -c”를 추가하는 이유 (0) | 2023.09.20 |
[Docker] Dockerfile에서 Private Repo Clone하는 방법 (0) | 2023.06.10 |
[Docker] docker build 시 Dockerfile 경로 지정 (0) | 2023.03.18 |
[Docker] CMD, ENTRYPOINT 차이 (0) | 2023.02.18 |
Comments