✅ 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/
'코딩 > Docker' 카테고리의 다른 글
🐳 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기 (1) | 2025.06.25 |
---|---|
🐳 EXPOSE : 컨테이너 내부에서 사용 중인 포트를 문서화하기 (0) | 2025.06.25 |
🐳 RUN: 이미지를 생성하는 과정에서 사용할 명령문 실행 (1) | 2025.06.24 |
🐳 [실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기 (1) | 2025.06.02 |
🐳 ENTRYPOINT : 컨테이너가 시작할 때 실행되는 명령어 (0) | 2025.05.13 |
댓글