Docker의 진입점 플래그 이해
docker run
명령에서 진입점(--entrypoint
) 플래그를 사용하여 Docker 컨테이너를 시작할 때 실행할 명령을 지정합니다. 이 플래그를 사용하면 컨테이너의 동작을 사용자 지정하고 Docker가 미리 실행할 명령을 결정할 수 있습니다.
이 기사에서는 진입점 명령의 개요에 대해 설명하고 Docker는 docker run
명령을 실행할 때 이를 사용합니다.
진입점 명령어 이해
기본적으로 Docker 컨테이너의 진입점은 이미지를 빌드하는 데 사용되는 Dockerfile의 CMD
명령입니다. CMD
명령은 Docker가 컨테이너를 시작할 때 실행하는 기본 명령을 지정합니다.
예를 들어 다음 Dockerfile은 이미지의 기본 진입점을 echo
명령으로 정의합니다.
FROM ubuntu:18.04
CMD ["echo", "Hello, World!"]
docker build
및 docker run
명령을 사용하여 이미지를 빌드하고 이미지를 기반으로 컨테이너를 실행할 수 있습니다.
예제 코드:
docker build -t my-image .
docker run my-image
이 예에서 docker run
명령은 my-image
이미지를 기반으로 컨테이너를 시작하고 echo
명령을 컨테이너의 진입점으로 실행합니다. 위의 명령은 "Hello, World!"
메시지를 콘솔에 인쇄합니다.
그러나 컨테이너에 대해 다른 진입점을 지정하려는 경우 docker run
명령을 실행할 때 --entrypoint
옵션을 사용할 수 있습니다.
예제 코드:
docker run --entrypoint /bin/sh my-image:latest
진입점 플래그를 사용하여 인수 전달
이 명령에서 --entrypoint
옵션은 컨테이너의 진입점을 /bin/sh
명령으로 지정합니다. 이 명령은 Dockerfile에 지정된 기본 진입점을 재정의합니다.
Dockerfile 내부에 정의된 CMD 대신 Docker가 컨테이너를 시작할 때 /bin/sh
가 명령을 실행하도록 합니다.
컨테이너의 진입점을 지정하는 것 외에도 진입점 플래그를 사용하여 진입점 명령에 인수를 전달할 수도 있습니다.
예제 코드:
docker run --entrypoint /bin/sh my-image:latest -c
docker run --entrypoint
명령은 다음 구문을 사용합니다.
docker run --entrypoint <entrypoint.sh> <image:tag> <arg1> <arg2> <arg3>
결론
시작된 컨테이너에서 기본 명령 셸을 지정하는 데 도움이 되도록 --entrypoint
플래그와 함께 명령을 실행합니다. Docker는 이를 사용하여 컨테이너의 동작을 사용자 지정하고 처음 사용할 때 특정 명령 또는 스크립트를 실행합니다.
이 플래그는 컨테이너가 항상 특정 명령을 시작하고 실행하는지 확인하려는 프로덕션 환경에서 컨테이너를 실행할 때 유용할 수 있습니다.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn