도커 가이드 · 4 min read · Feb 05, 2026
도커 가이드: 우분투 18.04에서 Nodejs Express 애플리케이션 도커화하기

도커는 개발자와 시스템 관리자가 어디에서나 애플리케이션을 경량 컨테이너로 빌드, 패키징 및 실행할 수 있도록 하는 오픈 플랫폼을 제공하는 오픈 소스 프로젝트입니다. 도커는 소프트웨어 컨테이너 내에서 애플리케이션의 배포를 자동화합니다.
Nodejs는 오픈 소스 자바스크립트 런타임 환경입니다. 다중 플랫폼 런타임으로, 리눅스, 윈도우, 맥OS, FreeBSD 등에 설치할 수 있습니다. Nodejs는 서버 및 데스크탑 애플리케이션을 구축하는 데 매우 유용합니다.
이 튜토리얼에서는 우분투 18.04에서 기존 Nodejs Express 애플리케이션 프로젝트의 도커 이미지를 만드는 방법을 보여드리겠습니다. Nodejs 애플리케이션을 도커화하는 방법을 배우고, 그런 다음 도커 컴포즈 스크립트를 사용하여 애플리케이션을 도커 환경에 컨테이너로 배포합니다.
전제 조건
- 우분투 18.04
- 루트 권한
우리가 할 일
- 도커 CE 설치
- 도커 컴포즈 설치
- Nodejs Express 프로젝트 설정
- 프로젝트 빌드
- 테스트
1단계 - 도커 CE 설치
이 튜토리얼에서는 도커 리포지토리에서 docker-ce 커뮤니티 에디션을 설치합니다. docker-ce 커뮤니티 에디션과 compose 파일 버전 3을 지원하는 docker-compose를 설치합니다.
docker-ce를 설치하기 전에 apt 명령을 사용하여 필요한 도커 종속성을 설치합니다.
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common이제 아래 명령을 실행하여 도커 키와 리포지토리를 추가합니다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
docker-ce 패키지를 설치합니다.
sudo apt install docker-ce설치가 완료되면 도커 서비스를 시작하고 시스템 부팅 시마다 실행되도록 활성화합니다.
systemctl start docker
systemctl enable docker
다음으로, 일반 사용자에게 도커 컨테이너를 실행하고 관리할 수 있는 권한을 부여합니다.
‘mohammad’라는 새 사용자를 추가하고 도커 그룹에 추가합니다.
useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad이제 ‘mohammad’ 사용자로 로그인하고 도커 컨테이너 hello-world를 실행합니다.
su - mohammad
docker run hello-world그리고 아래와 같은 결과를 얻을 수 있습니다.

2단계 - 도커 컴포즈 설치
이 단계에서는 GitHub에서 다운로드할 수 있는 바이너리 파일에서 도커 컴포즈를 수동으로 설치합니다. compose v3을 지원하는 최신 도커 컴포즈 버전을 설치합니다.
curl 명령을 사용하여 ‘/usr/local/bin’ 디렉토리에 최신 1.22.0 버전의 도커 컴포즈를 다운로드하고, chmod를 사용하여 실행 가능하게 만듭니다.
아래 명령을 실행합니다.
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose최신 도커 컴포즈 버전이 설치되었으며, 아래의 도커 컴포즈 명령을 실행하여 확인합니다.
docker-compose version다음은 결과입니다.

3단계 - Nodejs Express 프로젝트 설정
이 섹션에서는 Nodejs 애플리케이션 환경을 구성합니다. ‘express-generator’를 사용하여 생성할 수 있는 간단한 Nodejs 애플리케이션을 사용할 것입니다.
‘mohammad’ 사용자로 로그인합니다.
su - mohammad‘project’라는 새 디렉토리를 만들고 그 안으로 이동합니다.
mkdir -p project
cd project이제 아래의 ‘express’ 명령을 사용하여 간단한 hello-word Nodejs 애플리케이션을 생성합니다.
express hakase-app참고:
Nodejs, npm 및 ‘express-generator’ 패키지가 시스템에 설치되어 있는지 확인하십시오.
그리고 ‘hakase-app’ 디렉토리에 간단한 Nodejs Express 앱을 얻을 수 있습니다.

다음으로, ‘hakase-app’ Nodejs 애플리케이션을 위한 사용자 정의 도커 이미지를 빌드합니다.
‘project’ 디렉토리 아래에 vim을 사용하여 새 ‘Dockerfile’을 만듭니다.
vim Dockerfile다음 도커 이미지 구성을 붙여넣습니다.
FROM node:8.11.4-alpine
RUN mkdir -p /src
RUN npm install express-generator -g
WORKDIR /src
ADD hakase-app/package.json /src/package.json
RUN npm install
EXPOSE 3000
CMD node hakase-app/bin/www저장하고 종료합니다.

우리는 아래의 사양으로 Nodejs 애플리케이션을 위한 새로운 사용자 정의 도커 이미지를 생성하고 있습니다.
- 사용자 정의 이미지는 공식 Nodejs 이미지 8.11.4 alpine 버전을 기반으로 합니다.
- 프로젝트를 위한 새 디렉토리 ‘/src’를 생성합니다.
- 사용자 정의 이미지에 ‘express-generator’를 설치합니다.
- 애플리케이션 프로필과 필요한 패키지를 포함하는 ‘package.json’ 파일을 ‘/src’ 디렉토리에 추가합니다.
- ‘package.json’ 파일을 기반으로 프로젝트에 필요한 모든 Nodejs 패키지를 설치합니다.
- 기본 실행 시작 명령 ‘node hakase-app/bin/www’로 포트 3000을 내보냅니다.
다음으로, 도커 컴포즈 스크립트를 기반으로 사용자 정의 이미지를 빌드합니다.
vim을 사용하여 새 yml 파일 ‘docker-compose.yml’을 만듭니다.
vim docker-compose.yml다음 구성을 붙여넣습니다.
version: '3'
services:
hakase-app:
build: .
volumes:
- ./hakase-app:/src/hakase-app
ports:
- "3000:3000"
restart: always저장하고 종료합니다.

우리는 ‘hakase-app’이라는 새로운 도커 서비스를 생성하고 있으며, 동시에 프로젝트 디렉토리의 ‘Dockerfile’을 기반으로 사용자 정의 도커 이미지를 빌드하고 hakase-app 애플리케이션 파일을 자동으로 마운트합니다.
Nodejs Express 설정이 완료되었습니다.
4단계 - 프로젝트 빌드 및 실행
‘mohammad’ 사용자로 로그인하고 ‘project’ 디렉토리로 이동합니다.
su - mohammad
cd project/아래의 도커 컴포즈 명령을 사용하여 이미지를 빌드하고 도커 서비스 hakase-app을 생성합니다.
docker-compose build이제 아래와 같은 결과를 얻을 수 있습니다.

완료되면 ‘hakase-app’ 도커 서비스를 실행합니다.
docker-compose up -d다음은 결과입니다.

우리의 Nodejs 애플리케이션을 위한 사용자 정의 도커 이미지가 생성되었으며, hakase-app 도커 서비스가 실행 중입니다.
5단계 - 테스트
서버에서 사용 가능한 도커 이미지를 보여줍니다.
docker-compose images
docker images
우리의 Nodejs 애플리케이션을 위한 새로운 사용자 정의 도커 이미지가 생성되었습니다.
실행 중인 도커 서비스를 보여줍니다.
docker-compose ps
docker psNodejs 앱이 호스트 포트 3000에서 실행 중입니다.
웹 브라우저를 열고 서버 IP 주소와 포트를 입력합니다.
그리고 간단한 express 페이지를 얻을 수 있습니다.
우분투 18.04에서 Nodejs Express 애플리케이션을 도커화하는 작업이 성공적으로 완료되었습니다.
참고
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.