Docker & Kubernetes
[Docker] Volume 맵핑
* Docker Volume을 사용 하는 이유 : 소스코드 변경에 따라 매번 컨테이너 이미지에 복사하고 이미지를 새로 빌드하기에는 낭비가 너무 크다. : 볼륨을 별도로 만들고 참조하는 구조로 가면 소스 변경 시 매번 이미지 빌드가 필요 없다. * Volume 맵핑 # > docker run -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app junducut/nodejs > docker run -p [호스트포트]:[컨테이너포트] -v [맵핑에서 제외할 컨터이너 내부의 경로] -v [맵핑될로컬경로]:[맵핑할컨테이너경로] [이미지아이디]/[이미지명]
[Docker] 간단한 테스트 목적의 Node.js 앱 만들기
* npm 설치 > brew install npm * package.json 만들기 # 프로젝트 폴더로 이동 > cd /desktop/nodejs-docker-app/ # 패키지 만들기 > npm init * package.json에 express 디펜던시 추가 { "name": "nodejs-docker-app", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "4.17.3" }, "author": "", "license..
[Docker] Dockerfile 작성 및 이미지 만들기
* Docker deamon 기동 (on Mac) > open -a docker * 이미지 만드는 순서 : 도커 파일 -> 도커 클라이언트 -> 도커 서버 -> 이미지 - 도커 파일 생성 # 1. 빌드 스테이지 # 베이스 이미지 명시, 이미시 생성 시 기반이 되는 이미지 레이어입니다. # : 형식으로 작성 # 태그를 안붙이면 자동적으로 가장 최신것으로 다운 받음 FROM node:alpineAS builder# FROM 부터 다음 FROM 까지 builder stage 임을 명시 # 파일들을 넣어줄 폴더 설정 # 컨테이너 접근 시 워크디렉토리로 기본으로 접근한다. WORKDIR /usr/src/app # 패키지 파일을 먼저 가져간 후 npm install을 해야 캐싱을 쓸수 있다. COPY package..