Docker 유틸리티 컨테이너로 Node.js를 편하게 다뤄보자
혹시 이런 생각 해본 적 있으세요? "Node.js 프로젝트를 새로 시작해야 하는데, 이거 또 내 컴퓨터에 설치해야 하나...?" 저도 그런 적 많아요. 그냥 깔끔하게, 필요한 것만 딱 실행하고 싶은데, 매번 뭔가 깔고 설정하다 보면 귀찮고 복잡하잖아요.
그럴 때 진짜 딱인 게 있어요. 바로 Docker 유틸리티 컨테이너. 내 PC는 그대로 두고, Docker 안에서 개발 환경을 싹 만들어서 사용하는 거죠. 말 그대로, 가볍고 똑똑한 방법이에요. 자, 같이 한번 해보실래요?

제일 먼저 해볼 것: Node.js 컨테이너 한 번 돌려보기
터미널 열고요, 아래처럼 한 줄 입력해보세요:
docker run node
어라? 실행됐다가 바로 꺼지죠? 당황하지 마세요. 얘는 입력을 기다리는 모드로 만들어진 이미지라 그래요. 그래서 대화형 모드로 바꿔줄 필요가 있어요:
docker run -it node
이제 진짜 Node 콘솔에 들어왔어요! 여기에 뭐 간단하게 계산도 해보고요:
> console.log(2 + 2)
4
이게 좋은 게 뭔지 아세요? 내 컴퓨터에 Node.js 설치 안 돼 있어도, 이 컨테이너 안에선 다 된다는 거예요. 깔끔하죠?
작업 끝났으면 CTRL+C 두 번 눌러서 나가면 되고, 아래 명령어로 정리도 할 수 있어요:
docker container prune

백그라운드 + 대화형 모드 동시에 돌리기
이번엔 좀 더 응용해볼게요. 백그라운드로 실행되면서도, 필요할 때 명령어도 보낼 수 있게 해보죠:
docker run -dit node
이제 컨테이너는 조용히 뒤에서 실행되고 있어요. 필요할 땐 언제든지 접근해서 작업하면 됩니다.
실행 중인 컨테이너 안에서 npm init 돌려보기
지금 돌아가고 있는 컨테이너 안에서 뭔가 추가로 작업하고 싶을 땐 docker exec 써보세요:
docker exec -it <container-name> npm init
bash가 없을 수도 있으니까, 그럴 땐 sh로 바꿔보시고요. 이렇게 하면 진짜 설치 안 하고도 프로젝트 초기화할 수 있어요. 신기하죠?
컨테이너 시작할 때 명령어 바꿔서 실행해보기
이번엔 아예 시작부터 npm init이 바로 실행되게 해볼게요:
docker run -it node npm init
작업 끝나면 컨테이너도 자동으로 종료돼요. 짧고 간단한 작업에 딱이에요.
내 스타일대로! 유틸리티 컨테이너 직접 만들기
이번엔 내가 직접 만든 이미지로 써볼게요. 먼저 Dockerfile 만들고 이렇게 작성해요:
FROM node:14-alpine
WORKDIR /app
그다음 이미지 빌드해줍니다:
docker build -t node-utility .
완성된 이미지로 npm init도 당연히 가능하죠:
docker run -it node-utility npm init
근데 여기서 하나 빠졌죠. 이렇게 만든 파일이 컨테이너 안에만 있다면...? 좀 아쉽잖아요.

컨테이너랑 내 폴더를 연결해서 실시간 공유하기
이럴 땐 bind mount! 아래처럼 입력하면 컨테이너 안 /app 폴더랑 내 현재 작업 폴더가 연결돼요:
docker run -it -v $(pwd):/app node-utility npm init
이제 프로젝트 만들면 package.json 같은 파일이 바로 내 폴더에도 생겨요. 완전 짱이죠.
설치 안 하고도 이렇게 프로젝트 만들 수 있다니, 처음 알았을 땐 진짜 감탄했어요.
그럼 이게 왜 좋은 거냐고요?
Node.js야 뭐 가볍고 간단한 편이지만, Laravel이나 PHP 같은 거는 진짜 설치부터가 장난 아니잖아요. 설정도 복잡하고 버전 맞추는 것도 귀찮고요.
이럴 때 Docker 유틸리티 컨테이너가 제 역할을 톡톡히 해줘요:
- 내 컴퓨터는 항상 깨끗하게 유지할 수 있고
- 팀원들끼리도 환경 똑같이 맞추기 쉽고
- 프로젝트 하나 시작할 때마다 삽질할 일도 확 줄어요
다음에는 뭘 해볼까요?
다음 편에선 Laravel + PHP를 Docker로 세팅하는 방법도 소개할 거예요. 그것도 생각보다 재미있어요.
이번 글에서는 이런 걸 해봤죠:
- 컨테이너 안에서 Node 쓰기
- 실행 중인 컨테이너에 명령어 보내기
- 내가 만든 이미지로 작업하기
- 로컬과 컨테이너 폴더 연결해서 파일 공유하기
그런데 이 모든 걸 내 PC에 아무것도 설치하지 않고 할 수 있다는 거, 이게 진짜 핵심이에요.
마무리하며 한마디만요
Docker 유틸리티 컨테이너는 정말 편리한 친구예요. 한번 써보면 그 매력에 빠질 수밖에 없어요.
새 프로젝트 시작할 때 이렇게 스스로에게 물어보세요:
"이걸 꼭 내 컴퓨터에 설치해야 해...?"
그럴 필요 없어요. Docker한테 맡기세요. 진짜 똑똑하게 다 알아서 해줍니다.
'SW > Kubernetes, Docker' 카테고리의 다른 글
| Docker Compose로 개발 환경 자동화하는 법 (Utility Container 활용법 포함!) (0) | 2025.09.24 |
|---|---|
| 실수 없이 npm 명령어 실행하는 법 – Docker Entrypoint로 깔끔하게! (0) | 2025.09.23 |
| Docker 유틸리티 컨테이너란? Node 없이 npm init 하는 법 (0) | 2025.09.21 |
| Docker Compose로 풀스택 개발환경 한 번에 세팅하는 방법 (React + Node.js + MongoDB) (0) | 2025.09.20 |
| 리눅스에서 Docker Compose 설치하고 사용하는 법 (실전 후기 포함) (0) | 2025.09.19 |