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/ 접속

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
비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의
현재 평점 4.9점 수강생 14,486명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를
www.inflearn.com
'강의 실습 > 비전공자도 이해할 수 있는 Docker 입문 실전' 카테고리의 다른 글
| [실습] Docker Compose로 프론트엔드(HTML, CSS, Nginx) 실행시키기 (4) | 2026.05.31 |
|---|---|
| [실습] Docker Compose로 프론트엔드(Next.js) 실행시키기 (0) | 2026.05.30 |
| [실습] Docker Compose로 백엔드(Spring Boot) 실행시키기 (0) | 2026.05.29 |
| [실습] Docker Compose로 MySQL 실행시키기 (1) | 2026.05.27 |
| [실습] Docker Compose로 Redis 실행시키기 (0) | 2026.05.26 |
댓글