Dockerfile WORKDIR은 이미지에도 유지됩니다.

Dockerfile WORKDIR은 이미지에도 유지됩니다.

나는 dockerfiles에 대해 배우기 위해 온라인 튜토리얼을 듣고 있었습니다. 다음과 같은 퀴즈 질문이 있었습니다.

Dockerfile WORKDIR 명령은 디렉터리를 변경합니다.

  1. 나머지 Dockerfile에 대해서만
  2. 완성된 이미지에서도 마찬가지입니다.

내가 선택한 것(잘못됨)은 "1. Dockerfile의 나머지 부분에만"이었습니다.

두 번째 (정확한) 대답이 도움이 될 수 있는 예를 들어 누군가 나를 바로잡을 수 있습니까?

문서의 WORKDIR

답변1

특정 디렉터리에서 코드를 실행해야 하는 경우가 많이 있습니다. 실행 중인 애플리케이션이 현재 디렉터리의 파일을 조작할 수도 있고, 애플리케이션이 현재 디렉터리의 구성을 기대하는 것일 수도 있습니다. 응용 프로그램은 현재 디렉터리에 있습니다. WORKDIR컨테이너를 실행하는 사람들이 걱정할 필요가 없도록 이미지 작성자가 이를 설정할 수 있습니다.

예를 들어; 내가 이전에 경험한 한 가지 사용 사례는 현재 디렉터리의 파일을 조작하는 애플리케이션으로 Docker 컨테이너를 만드는 것입니다. 설정하지 않으면 WORKDIR볼륨을 특정 위치에 바인딩한 다음 cd /location모든 명령에 대해 실행해야 합니다.

docker -v $PWD:/location someimage "cd /location; somecommand"

WORKDIR으로 설정하면 /location다음을 삭제할 수 있습니다 cd.

docker -v $PWD:/location someimage somecommand

훨씬 더 편리합니다.

관련 정보