JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 Docker 입문

Docker 기본 개념

Docker를 왜 배우는 걸까?
Docker란 ? / 컨테이너(Container)란? / 이미지(Image)란?
Docker 설치 (Windows, Mac OS)
[실습] Docker 전체 흐름 느껴보기 (Nginx 설치 및 실행)

현업에서 자주 사용하는 Docker CLI 익히기

Docker 이미지(Image) 다운로드
Docker 이미지(Image) 조회 / 삭제
Docker 컨테이너(Container) 생성 / 실행 - 1
Docker 컨테이너(Container) 생성 / 실행 - 2
Docker 컨테이너(Container) 조회 / 중지 / 삭제
Docker 컨테이너(Container) 로그 조회
Docker 실행중인 컨테이너 내부에 접속하기 (exec -it)
[실습] Docker로 Redis 실행시켜보기

도커 볼륨을 활용해 데이터 유실 방지하기

Docker Volume(도커 볼륨)
[보충 자료] Windows에서 lsof, kill, sudo 명령어가 작동하지 않을 때 대처 방법
[실습] Docker로 MySQL 실행시켜보기 - 1
[실습] Docker로 MySQL 실행시켜보기 - 2
[실습] Docker로 MySQL 실행시켜보기 - 3
[실습] Docker로 PostgreSQL 실행시켜보기
[실습] Docker로 MongoDB 실행시켜보기

Dockerfile 활용해 이미지 직접 만들기

Dockerfile이란?
FROM : 베이스 이미지 생성
[실습] FROM : 베이스 이미지 생성
종료된 컨테이너에 들어가서 디버깅하고 싶을 때
COPY : 파일 복사(이동)
ENTRYPOINT : 컨테이너가 시작할 때 실행되는 명령어
[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기
RUN : 이미지를 생성하는 과정에서 사용할 명령문 실행
WORKDIR : 작업 디렉토리를 지정
EXPOSE : 컨테이너 내부에서 사용 중인 포트를 문서화하기
[실습] 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기
[실습] 웹 프론트엔드 프로젝트(Next.js)를 Docker로 배포하기
[실습] 웹 프론트엔드 프로젝트(HTML, CSS, Nginx)를 Docker로 배포하기

Docker Compose를 활용해 컨테이너 관리하기

Docker Compose를 사용하는 이유
[실습] Docker Compose 전체 흐름 느껴보기 (Nginx 설치 및 실행)
자주 사용하는 Docker Compose CLI 명령어
[실습] Docker Compose로 Redis 실행시키기
[실습] Docker Compose로 MySQL 실행시키기
[실습] Docker Compose로 백엔드(Spring Boot) 실행시키기
[실습] Docker Compose로 백엔드(Nest.js) 실행시키기
[실습] Docker Compose로 프론트엔드(Next.js) 실행시키기
[실습] Docker Compose로 프론트엔드(HTML, CSS, Nginx) 실행시키기
Docker CLI ↔ Docker Compose 쉽게 작성하기

Docker Compose를 활용해 2개 이상의 컨테이너 관리하기

[실습] MySQL, Redis 컨테이너 동시에 띄워보기
[실습] Spring Boot, MySQL 컨테이너 동시에 띄워보기
컨테이너로 실행시킨 Spring Boot가 MySQL에 연결이 안 되는 이유
[실습] Spring Boot, MySQL, Redis 컨테이너 동시에 띄워보기

AWS EC2에서 Docker를 활용해 배포해보기

Ubuntu에서 Docker, Docker Compose 설치하기
AWS ECR(Elastic Container Registry)이 뭘까? 왜 배울까?
[실습] AWS ECR(Elastic Container Registry) 사용해보기
[실습] AWS EC2에 Docker + Spring Boot 배포하기
[실습] AWS EC2에 Docker + Spring Boot, MySQL, Redis 배포하기
← 블로그 목록으로 돌아가기

WORKDIR : 작업 디렉토리를 지정

JSCODE 박재성
JSCODE 박재성
2026. 03. 22.
author
JSCODE 박재성
category
Docker
createdAt
Dec 1, 2025 09:46 AM
isPublic
isPublic
series
비전공자도 이해할 수 있는 Docker 입문
slug
dockerfile-workdir
type
post
updatedAt
Mar 22, 2026 09:00

✅ 의미

WORKDIR으로 작업 디렉터리를 전환하면 그 이후에 등장하는 모든 RUN, CMD, ENTRYPOINT, COPY, ADD 명령문은 해당 디렉터리를 기준으로 실행된다. 작업 디렉터리를 굳이 지정해주는 이유는 컨테이너 내부의 폴더를 깔끔하게 관리하기 위해서이다. 컨테이너도 미니 컴퓨터와 같기 때문에 Dockerfile을 통해 생성되는 파일들을 특정 폴더에 정리해두는 것이 추후에 관리가 쉽다. 만약 WORKDIR을 쓰지 않으면 컨테이너 내부에 존재하는 기존 파일들과 뒤섞여버린다.
 

✅ 사용법

# 문법 WORKDIR [작업 디렉토리로 사용할 절대 경로] # 예시 WORKDIR /usr/src/app
 

🎯 예제

  1. app.txt, src, config.json 파일 만들기
    1.  
  1. Dockerfile 만들어서 이미지 생성 및 컨테이너 실행
    1. WORKDIR을 안 썼을 때 파일이 어떻게 구성되는 지 먼저 확인해보자.
      Dockerfile
      FROM ubuntu COPY ./ ./ ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] # 디버깅용 코드
$ docker build -t my-server . $ docker run -d my-server $ docker exec -it [Container ID] bash $ ls
 
 
WORKDIR을 썼을 때 파일이 어떻게 구성되는 지 확인해보자.
Dockerfile
FROM ubuntu WORKDIR /my-dir COPY ./ ./ ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
 
$ docker build -t my-server . $ docker run -d my-server $ docker exec -it [Container ID] bash $ ls
📎
이 글은 비전공자도 이해할 수 있는 Docker 입문/실전 강의의 수업 자료 중 일부입니다.