본문 바로가기
코딩/Docker

🐳 실습 - Dockerfile의 WORKDIR 명령어

by Leedius 2025. 6. 25.

WORKDIR 이란?

WORKDIR 명령어는 Dockerfile에서 작업 디렉토리를 지정할 때 사용합니다. 한 번 지정하면 이후 등장하는

모든 RUN, CMD, ENTRYPOINT, COPY, ADD 명령어들은 해당 디렉토리를 기준으로 실행됩니다.

💡 컨테이너 내부의 파일 구조를 깔끔하게 관리할 수 있도록 도와주는 중요한 명령어입니다.

 

 


✅ 기본 문법

WORKDIR [작업 디렉토리로 사용할 절대 경로]

 


✅ 예시

WORKDIR /usr/src/app

 


WORKDIR을 쓰는 이유

  • 컨테이너 내부 파일을 구조화하여 관리
  • 프로젝트 파일을 명확한 경로에 배치
  • 기존 시스템 디렉토리와 충돌 방지

 


🎯 실습 예제: WORKDIR 사용 전/후 비교

📁 1. 준비물

  • app.txt
  • src/
  • config.json

 


🧪 2. WORKDIR 사용 ❌ (미지정)

Dockerfile

FROM ubuntu

COPY ./ ./

ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]

실행

docker build -t no-workdir . 
docker run -d no-workdir
docker exec -it [컨테이너ID] bash
ls

📌 결과: 컨테이너의 루트 디렉토리에 파일이 전부 혼재되어 있음

 


✅ 3. WORKDIR 사용 ⭕️ (지정)

Dockerfile

FROM ubuntu

WORKDIR /my-dir

COPY ./ ./

ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]

실행

docker build -t with-workdir .
docker run -d with-workdir
docker exec -it [컨테이너ID] bash
ls

📌 결과 : /my-dir 디렉토리 내에 파일이 깔끔하게 정리되어 있음

pwd
/my-dir
ls
app.txt config.json src/

댓글