1. 개요

Docker 이미지는 컨테이너를 빌드하기 위한 템플릿 역할을 하는 일련의 순차적 명령으로 구성됩니다. 이 사용방법(예제)에서는 Docker 이미지를 빌드하거나 이미지를 사용하여 컨테이너를 실행할 때 디렉터리를 변경하는 방법을 알아봅니다 .

2. WORKDIR 명령 사용

먼저 쉽게 사용할 수 있는 ubuntu:latest 이미지 를 사용하여 Docker 컨테이너를 생성하는 것으로 시작하겠습니다 .

$ docker run -it ubuntu:latest
root@89848b34daa6:/# pwd
/

컨테이너가 가동되자마자 현재 디렉터리가 /로 설정되는 것을 볼 수 있습니다.

다음 으로 컨테이너 시작 시 이 디렉터리를 /tmp 로 변경하고 싶다고 가정해 보겠습니다 . ubuntu:latest 를 기본 이미지로 사용하는 사용자 지정 이미지 내에서 WORKDIR 명령 을 사용하여 이를 수행할 수 있습니다 .

$ cat custom-ubuntu-v1.dockerfile
FROM ubuntu:latest
WORKDIR /tmp

이 이미지를 사용하여 컨테이너를 실행하려면 먼저 이미지를 빌드해야 합니다. 이제 custom-ubuntu:v1 이미지 를 빌드해 보겠습니다 .

$ docker build -t custom-ubuntu:v1 - < ./custom-ubuntu-v1.dockerfile

마지막으로 custom-ubuntu:v1 이미지 를 사용하여 컨테이너를 실행 하고 현재 디렉터리를 확인합니다.

$ docker run -it custom-ubuntu:v1
root@4c26093b26e6:/tmp# pwd
/tmp

이 문제가 해결된 것 같습니다!

3. –workdir 옵션 사용

WORKDIR 명령을 사용하는 것은 Docker 이미지를 빌드할 때 디렉터리를 변경하려는 대부분의 경우에 권장되는 방법입니다. 그럼에도 불구하고 사용 사례가 컨테이너를 실행할 때 디렉터리를 변경하는 것으로 제한되는 경우 –workdir 옵션 을 사용하여 이를 달성할 수 있습니다 .

$ docker run --workdir /tmp -it ubuntu:latest
root@32c5533c248c:/tmp# pwd
/tmp

이를 보면 명령의 간결함과 이 경우 사용자 지정 이미지를 만들 필요가 없다는 사실을 알 수 있습니다.

4. cd 명령 사용

Linux에서 cd ​​명령 은 대부분의 사용 사례에서 디렉터리를 변경하는 표준 방법입니다. 같은 메모에서 RUN , CMDENTRYPOINT 와 같은 일부 도커 명령으로 작업할 때 cd 명령을 사용하여 컨텍스트에서 현재 명령의 디렉터리를 변경할 수 있습니다.

cd 명령 과 함께 RUN   명령어 를 사용하기 위해 custom-ubuntu-v2.dockerfile 을 작성하여 시작하겠습니다 .

FROM ubuntu:latest
RUN cd /tmp && echo "sample text" > data.txt

의도가 /tmp/data.txt 파일 에 "샘플 텍스트"를 쓰는 것임을 알 수 있습니다 .

다음 으로 컨테이너 시작 시 bash 를 기본 명령으로 실행 하는 ENTRYPOINT 명령을 추가해 보겠습니다. 또한 cd 명령을 사용하여 현재 디렉토리를 /tmp 디렉토리로 변경합니다.

ENTRYPOINT ["sh", "-c", "cd /tmp && bash"]

계속해서 사용자 지정 이미지를 빌드해 보겠습니다.

$ docker build -t custom-ubuntu:v2 - < ./custom-ubuntu-v2.dockerfile

마지막으로 custom-ubuntu:v2 이미지 를 사용하여 컨테이너를 실행하고 명령 실행을 확인합니다.

$ docker run -it custom-ubuntu:v2
root@2731e50ea20a:/tmp# pwd
/tmp
root@2731e50ea20a:/tmp# cat /tmp/data.txt
random text

두 디렉토리 변경 명령의 결과가 예상대로임을 알 수 있습니다. 또한 WORKDIR 이 여전히 권장되는 방식 임을 기억해야 합니다 . 여전히  간단한 사용 사례의 경우 cd 명령을 RUN , ENTRYPOINT 또는 CMD 명령 과 함께 사용할 수 있습니다 .

5. 결론

이 기사에서는 Docker 이미지로 작업하거나 컨테이너를 시작할 때 디렉토리를 변경하는 다양한 접근 방식을 배웠습니다 .

Generic footer banner