본문 바로가기
강의 실습/비전공자도 이해할 수 있는 Docker 입문 실전

[실습] Docker Compose로 백엔드(Nest.js) 실행시키기

by jint 2026. 5. 29.

1. Docker Compose 로 백엔드(Nest.js) 실행
1) Nest.js 프로젝트 생성
- Windows PowerShell

# Nest CLI 설치
# npm i -g @nestjs/cli

# Nest CLI 설치 여부 확인
PS C:\Users\admin> nest --version
11.0.21

# nest new {프로젝트명}
PS C:\Users\admin> nest new compose-nest-server
✨  We will scaffold your app in a few seconds..

✔ Which package manager would you ❤️  to use? npm
CREATE compose-nest-server/.prettierrc (56 bytes)
CREATE compose-nest-server/eslint.config.mjs (934 bytes)
CREATE compose-nest-server/nest-cli.json (179 bytes)
CREATE compose-nest-server/package.json (2060 bytes)
CREATE compose-nest-server/README.md (5126 bytes)
CREATE compose-nest-server/tsconfig.build.json (101 bytes)
CREATE compose-nest-server/tsconfig.json (702 bytes)
CREATE compose-nest-server/src/app.controller.ts (286 bytes)
CREATE compose-nest-server/src/app.module.ts (259 bytes)
CREATE compose-nest-server/src/app.service.ts (150 bytes)
CREATE compose-nest-server/src/main.ts (236 bytes)
CREATE compose-nest-server/src/app.controller.spec.ts (639 bytes)
CREATE compose-nest-server/test/jest-e2e.json (192 bytes)
CREATE compose-nest-server/test/app.e2e-spec.ts (754 bytes)

✔ Installation in progress... ☕

🚀  Successfully created project compose-nest-server
👉  Get started with the following commands:

$ cd compose-nest-server
$ npm run start


                          Thanks for installing Nest 🙏
                 Please consider donating to our open collective
                        to help us maintain this package.


               🍷  Donate: https://opencollective.com/nest


2) Dockerfile 작성
- compose-nest-server/Dockerfile

# 베이스 이미지 node
FROM node

# 작업 디렉토리 지정
WORKDIR /app

# 호스트 컴퓨터 파일을 컨테이너로 복사
COPY . .

# 라이브러리 설치
RUN npm install

# 빌드
RUN npm run build

# 3000번 포트 사용
EXPOSE 3000

# 빌드된 nest.js 프로젝트 실행
ENTRYPOINT [ "node", "dist/main.js" ]


3) .dockerignore 작성
- compose-nest-server/.dockerignore

node_modules


이미지 생성시, npm install 을 통해 필요한 의존성만 설치하기 때문에, 호스트 컴퓨터의 node_modules 는 컨테이너로 복사할 필요가 없다.

4) compose 파일 작성
compose.yml 작성하지 않고 Docker CLI 로 실행시킬 때)

$ docker build -t compose-nest-server .
$ docker run -d -p 3000:3000 compose-nest-server


- compose-nest-server/compose.yml

services:
  compose-nest-server:
    # compose.yml 이 존재하는 디렉토리(.)에 있는 Dockerfile 로 이미지를 생성
    build: .
    ports:
      - 3000:3000


5) compose 파일 실행
- Windows PowerShell

PS C:\Users\admin\compose-nest-server> docker compose up --build -d
#1 [internal] load local bake definitions
#1 reading from stdin 603B 0.0s done
#1 DONE 0.0s

#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 388B done
#2 DONE 0.1s

#3 [internal] load metadata for docker.io/library/node:latest
#3 ...

#4 [auth] library/node:pull token for registry-1.docker.io
#4 DONE 0.0s

#3 [internal] load metadata for docker.io/library/node:latest
#3 DONE 2.2s

#5 [internal] load .dockerignore
#5 transferring context: 52B done
#5 DONE 0.1s

#6 [internal] load build context
#6 DONE 0.0s

#7 [1/5] FROM docker.io/library/node:latest@sha256:980c5420a7a2ddcb44037726977f2a349e5c7b64217516c7488dce4c74d71583
#7 resolve docker.io/library/node:latest@sha256:980c5420a7a2ddcb44037726977f2a349e5c7b64217516c7488dce4c74d71583 0.0s done
#7 DONE 0.4s

#6 [internal] load build context
#6 transferring context: 386.73kB 0.0s done
#6 DONE 0.2s

#7 [1/5] FROM docker.io/library/node:latest@sha256:980c5420a7a2ddcb44037726977f2a349e5c7b64217516c7488dce4c74d71583
#7 sha256:326172fd43b935cd35f1db120b1001ad613abdad67fa49eb70bb68bcf73a5a93 0B / 451B 0.2s
#7 sha256:326172fd43b935cd35f1db120b1001ad613abdad67fa49eb70bb68bcf73a5a93 451B / 451B 0.2s done
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 0B / 62.96MB 0.3s
#7 sha256:bacec82ae09bce2a0299189b9f5e4266a9ff43adbd55a9ca2ad3cfff82afc63f 0B / 3.33kB 0.2s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 0B / 236.18MB 0.2s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 0B / 67.78MB 0.2s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 4.19MB / 62.96MB 0.8s
#7 sha256:bacec82ae09bce2a0299189b9f5e4266a9ff43adbd55a9ca2ad3cfff82afc63f 3.33kB / 3.33kB 0.6s done
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 0B / 25.63MB 0.2s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 9.44MB / 62.96MB 1.1s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 4.19MB / 67.78MB 0.8s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 2.10MB / 25.63MB 0.5s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 8.39MB / 67.78MB 1.1s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 5.24MB / 25.63MB 0.6s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 14.68MB / 62.96MB 1.5s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 12.58MB / 67.78MB 1.4s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 8.39MB / 25.63MB 0.9s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 18.87MB / 62.96MB 1.8s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 13.63MB / 236.18MB 1.7s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 10.49MB / 25.63MB 1.1s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 16.78MB / 67.78MB 1.7s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 12.58MB / 25.63MB 1.2s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 24.12MB / 62.96MB 2.1s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 22.02MB / 67.78MB 2.0s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 14.68MB / 25.63MB 1.5s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 28.31MB / 62.96MB 2.4s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 16.78MB / 25.63MB 1.7s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 25.75MB / 67.78MB 2.3s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 18.87MB / 25.63MB 1.8s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 32.51MB / 62.96MB 2.7s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 26.21MB / 236.18MB 2.6s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 20.97MB / 25.63MB 2.0s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 30.41MB / 67.78MB 2.6s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 24.12MB / 25.63MB 2.1s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 37.75MB / 62.96MB 3.0s
#7 sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 25.63MB / 25.63MB 2.2s done
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 34.60MB / 67.78MB 2.9s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 0B / 49.31MB 0.2s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 42.99MB / 62.96MB 3.3s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 38.80MB / 236.18MB 3.3s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 38.80MB / 67.78MB 3.2s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 47.19MB / 62.96MB 3.6s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 4.19MB / 49.31MB 0.6s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 42.99MB / 67.78MB 3.5s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 51.38MB / 62.96MB 3.9s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 8.39MB / 49.31MB 0.9s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 48.23MB / 67.78MB 3.8s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 55.57MB / 62.96MB 4.2s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 12.58MB / 49.31MB 1.2s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 52.43MB / 236.18MB 4.2s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 52.43MB / 67.78MB 4.1s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 15.73MB / 49.31MB 1.4s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 59.77MB / 62.96MB 4.5s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 57.67MB / 67.78MB 4.4s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 19.92MB / 49.31MB 1.7s
#7 sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 62.96MB / 62.96MB 4.7s done
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 24.12MB / 49.31MB 2.0s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 62.91MB / 67.78MB 4.7s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 27.26MB / 49.31MB 2.1s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 67.11MB / 236.18MB 5.1s
#7 sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 67.78MB / 67.78MB 5.0s done
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 32.51MB / 49.31MB 2.4s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 35.65MB / 49.31MB 2.6s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 38.80MB / 49.31MB 2.7s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 44.04MB / 49.31MB 3.0s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 81.79MB / 236.18MB 5.9s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 49.31MB / 49.31MB 3.3s
#7 sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 49.31MB / 49.31MB 3.3s done
#7 extracting sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 95.42MB / 236.18MB 6.9s
#7 extracting sha256:f32f49ce655a9cf7c1fd4ca1417ddb39a54cedf4b7ff35de20f8009c18dd7a96 0.9s done
#7 extracting sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471
#7 extracting sha256:8a7504cd2818ce40ac76c17886a03dff25ef0aa06ff6125bf0f0c7302cdc6471 0.4s done
#7 extracting sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 109.05MB / 236.18MB 7.8s
#7 extracting sha256:b53089dca50590292ecc77bf803152a5799650e734717e4b706cb812a02073ba 1.2s done
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 121.63MB / 236.18MB 8.9s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 135.27MB / 236.18MB 9.9s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 148.90MB / 236.18MB 11.0s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 162.53MB / 236.18MB 12.0s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 175.11MB / 236.18MB 12.9s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 188.74MB / 236.18MB 14.0s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 201.33MB / 236.18MB 14.9s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 213.91MB / 236.18MB 15.8s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 226.49MB / 236.18MB 16.8s
#7 sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 236.18MB / 236.18MB 17.5s done
#7 extracting sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5
#7 extracting sha256:8d6d44b254dab2063c4226fc8a0849d5527402d24d3bea80d644a1e4ac3a47e5 3.2s done
#7 DONE 21.1s

#7 [1/5] FROM docker.io/library/node:latest@sha256:980c5420a7a2ddcb44037726977f2a349e5c7b64217516c7488dce4c74d71583
#7 extracting sha256:bacec82ae09bce2a0299189b9f5e4266a9ff43adbd55a9ca2ad3cfff82afc63f 0.0s done
#7 extracting sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803
#7 extracting sha256:9bc05f2fa3378d114b930cd832f8cb38b14a229fea9350e370ebb2c656361803 1.2s done
#7 DONE 22.4s

#7 [1/5] FROM docker.io/library/node:latest@sha256:980c5420a7a2ddcb44037726977f2a349e5c7b64217516c7488dce4c74d71583
#7 extracting sha256:326172fd43b935cd35f1db120b1001ad613abdad67fa49eb70bb68bcf73a5a93 0.0s done
#7 DONE 22.4s

#8 [2/5] WORKDIR /app
#8 DONE 0.6s

#9 [3/5] COPY . .
#9 DONE 0.1s

#10 [4/5] RUN npm install
#10 2.188 npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
#10 3.580 npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
#10 4.476 npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
#10 4.477 npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
#10 4.482 npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
#10 8.230
#10 8.230 added 683 packages, and audited 684 packages in 8s
#10 8.230
#10 8.230 146 packages are looking for funding
#10 8.230   run `npm fund` for details
#10 8.231
#10 8.231 found 0 vulnerabilities
#10 8.233 npm notice
#10 8.233 npm notice New minor version of npm available! 11.13.0 -> 11.16.0
#10 8.233 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.16.0
#10 8.233 npm notice To update run: npm install -g npm@11.16.0
#10 8.233 npm notice
#10 DONE 8.5s

#11 [5/5] RUN npm run build
#11 0.443
#11 0.443 > compose-nest-server@0.0.1 build
#11 0.443 > nest build
#11 0.443
#11 DONE 2.2s

#12 exporting to image
#12 exporting layers
#12 exporting layers 4.6s done
#12 exporting manifest sha256:7fda1b557aa29de5f2d85b49f32b87ba6863d9ce87e06287d18c308b8858fa3d 0.0s done
#12 exporting config sha256:bb2d600f0ce72b899a25f2768b8c24da64c5a37a2c660ce802b85722c9b756b5 0.0s done
#12 exporting attestation manifest sha256:d65039c843c28a60e39e006eb5a49e36b1e275e8593ea352ca2d08d3dc8b1b3d 0.1s done
#12 exporting manifest list sha256:c50411fed584221e5a6532cc2b60cbd6693a25f3a3b2edefbf60037fe035c80f
#12 exporting manifest list sha256:c50411fed584221e5a6532cc2b60cbd6693a25f3a3b2edefbf60037fe035c80f 0.0s done
#12 naming to docker.io/library/compose-nest-server-compose-nest-server:latest done
#12 unpacking to docker.io/library/compose-nest-server-compose-nest-server:latest
#12 unpacking to docker.io/library/compose-nest-server-compose-nest-server:latest 2.8s done
#12 DONE 7.7s

#13 resolving provenance for metadata file
#13 DONE 0.0s
[+] up 3/3
 ✔ Image compose-nest-server-compose-nest-server       Built                                                                                                                                                45.0s
 ✔ Network compose-nest-server_default                 Created                                                                                                                                               0.0s
 ✔ Container compose-nest-server-compose-nest-server-1 Started                                                                                                                                               0.7s

What's next:
    Filter, search, and stream logs from all your Compose services
    in one place with Docker Desktop's Logs view. docker-desktop://dashboard/logs?appId=compose-nest-server


6) compose 실행 현황 확인, 이미지 생성 확인
- Windows PowerShell

PS C:\Users\admin\compose-nest-server> docker compose ps
NAME                                        IMAGE                                     COMMAND               SERVICE               CREATED          STATUS          PORTS
compose-nest-server-compose-nest-server-1   compose-nest-server-compose-nest-server   "node dist/main.js"   compose-nest-server   23 seconds ago   Up 22 seconds   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp
PS C:\Users\admin\compose-nest-server> docker ps
CONTAINER ID   IMAGE                                     COMMAND               CREATED          STATUS          PORTS                                         NAMES
40ae523b845f   compose-nest-server-compose-nest-server   "node dist/main.js"   35 seconds ago   Up 34 seconds   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp   compose-nest-server-compose-nest-server-1
PS C:\Users\admin\compose-nest-server> docker image ls
                                                                                                                                                                                             i Info →   U  In Use
IMAGE                                            ID             DISK USAGE   CONTENT SIZE   EXTRA
compose-nest-server-compose-nest-server:latest   c50411fed584        2.1GB          502MB    U
compose-spring-boot-server-my-server:latest      dc64aff88c24        719MB          230MB
my-jdk17-server:beta                             18e650b59b52        682MB          212MB
my-jdk17-server:latest                           09a2803e5d8e        682MB          212MB    U
my-node-server:latest                            9a1e49574c81       1.77GB          442MB    U
my-server:latest                                 c8dad74bef6b        157MB         41.6MB    U
mysql:latest                                     c11782aa2a96        1.3GB          290MB
nginx:latest                                     5aca99593157        241MB           66MB
redis:latest                                     4d25e2fe601f        204MB         55.3MB


7) 컨테이너 로그 확인
- Windows PowerShell

PS C:\Users\admin\compose-nest-server> docker compose logs
compose-nest-server-1  | [Nest] 1  - 05/29/2026, 2:29:07 PM     LOG [NestFactory] Starting Nest application...
compose-nest-server-1  | [Nest] 1  - 05/29/2026, 2:29:07 PM     LOG [InstanceLoader] AppModule dependencies initialized +5ms
compose-nest-server-1  | [Nest] 1  - 05/29/2026, 2:29:07 PM     LOG [RoutesResolver] AppController {/}: +2ms
compose-nest-server-1  | [Nest] 1  - 05/29/2026, 2:29:07 PM     LOG [RouterExplorer] Mapped {/, GET} route +1ms
compose-nest-server-1  | [Nest] 1  - 05/29/2026, 2:29:07 PM     LOG [NestApplication] Nest application successfully started +1ms

What's next:
    Filter, search, and stream logs from all your Compose services
    in one place with Docker Desktop's Logs view. docker-desktop://dashboard/logs?appId=compose-nest-server


8) 브라우저에서 확인
브라우저에서 http://localhost:3000/ 접속

 

Docker Compose 로 Nest.js 서버 실행 확인


9) 실행시킨 컨테이너 중지 후 삭제
- Windows PowerShell

PS C:\Users\admin\compose-nest-server> docker compose down
[+] down 2/2
 ✔ Container compose-nest-server-compose-nest-server-1 Removed                                                                                                                                               1.4s
 ✔ Network compose-nest-server_default                 Removed                                                                                                                                               0.2s
PS C:\Users\admin\compose-nest-server> docker compose ps
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
PS C:\Users\admin\compose-nest-server> docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES



참고링크 : https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84?cid=334085

 

비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의

현재 평점 4.9점 수강생 14,486명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를

www.inflearn.com

댓글