나는 dockerfiles에 대해 배우기 위해 온라인 튜토리얼을 따르고 있습니다. 다음과 같은 퀴즈 질문이 있습니다.
Dockerfile WORKDIR 명령은 디렉터리를 변경합니다.
- Dockerfile의 나머지 부분에만 적용됩니다.
- 그리고 완성된 이미지에요.
내 선택(오류)은 "1. Dockerfile의 나머지 부분에만"이었습니다.
두 번째 (정확한) 대답이 도움이 될 수 있는 예를 들어 누군가 나를 정정할 수 있습니까?
답변1
특정 디렉터리에서 코드를 실행해야 하는 경우가 많을 수도 있고, 현재 디렉터리의 파일에서 작동하는 애플리케이션을 실행 중일 수도 있고, 애플리케이션에 현재 디렉터리의 구성이 필요할 수도 있고, 애플리케이션이 현재 디렉터리에 있을 수도 있습니다. WORKDIR
컨테이너를 실행하는 사람들이 걱정할 필요가 없도록 이미지 작성자가 이를 설정할 수 있도록 허용합니다.
예를 들어, 내가 이전에 접한 사용 사례는 현재 디렉터리의 파일을 조작하는 애플리케이션이 포함된 도커 컨테이너를 만드는 것이었습니다. 설정하지 않고 WORKDIR
볼륨을 특정 위치에 바인딩한 후 cd /location
각 명령을 실행해야 합니다.
docker -v $PWD:/location someimage "cd /location; somecommand"
WORKDIR
으로 설정하면 /location
다음을 제거할 수 있습니다 cd
.
docker -v $PWD:/location someimage somecommand
이것이 훨씬 더 편리합니다.