폴더 생성
npm init -y
npm i express
index.js 생성
const express = require('express');
const app = express();
app.get('/', (req, res)=>{
res.send('Dream Codking in Docker! 😎');
});
app.listen(8080, ()=> console.log('Server is running 🐲'));
test 해보자
node index.js (express 백엔드 실행 , http://localhost:8080 )
도커 파일생성
FROM node:20-alpine //노드 버전,
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci //npm ci로 해야 명시된 라이브러리 버전 유지함
COPY index.js .
ENTRYPOINT [ "node", "index.js" ] //자주 사용되는건 제일 아래로
도커 명령어
//-f 파일명, -t 도커 이미지(리포지토리) 명 마지막 .도커파일 위치
docker build -f Dockerfile -t fun-docker . //도커 이미지 생성
docker images //이미지 확인 명령어
//-d detached 컨테이너를 백그라운드로 실행, 포트번호 = 호스트8080: 컨테이너 8080
docker run -d -p 8080:8080 fun-docker //생성한 이미지로 컨테이너 실행
docker ps //실행중인 컨테이너 확인 명령어
docker logs ${컨테이너아이디} //로그 확인
----- 도커 리포지토리 생성하며
생성한 도커 이미지명과 리포지토리 명을 일치 시킨다
docker tag fun-docker:latest jiseong0612/docker-example:latest //From fun-docker(이미지명) To docker-example(리포지토리명):버전
docker images //이름을 바꾸고 나면 2개의 태그가 생긴걸 확인할 수 있다.
docker login //로그인 진행
docker push push jiseong0612/docker-example:latest //리포지토리 푸시
https://hub.docker.com/repository/docker/jiseong0612/docker-example/general
스프링 부트 .jar 로 말아서 도커에 실행해보기
FROM openjdk:11
WORKDIR /app
COPY ex01-0.0.1-SNAPSHOT.jar ./
CMD [ "java", "-jar", "ex01-0.0.1-SNAPSHOT.jar"]
------------------------------------------------------------------
docker build -f Dockerfile -t bootappt . //빌드할때 이미지이름을 일부터 오타를 줘봄
docker images
docker run --rm -p 1233:8080 bootappt //오타 확인되고 도커에서 정상 작동됨