SW/Kubernetes, Docker

Node.js 설치 없이 개발하는 법 – Docker 유틸리티 컨테이너로 프로젝트 시작하기

얇은생각 2025. 9. 22. 07:30
반응형

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한테 맡기세요. 진짜 똑똑하게 다 알아서 해줍니다.

반응형