같은 코드를 다른 컴퓨터에서 사용하려할때 도커 사용.
코드를 보내서 실행하면 디제스터가 일어나는 경우가 많음.(컴퓨터 환경이 다르기 때문)
도커는 코드(필요한 프로그램, 실행할 코드, 개발용 SDK, 라이브러리, OS)밀키트를 만들고 실행해주는 툴
컨테이너 : 코드 밀키트를 사용하고 있는 가상 컴퓨터
이미지 : 코드 밀키트
도커 안 터미널 명령어
docker image ls : 도커안 전체 이미지
docker pull hello-world : 터미널 이용해서 도커허브에서 hello-world라는 이미지를 가져올때
docker run 이미지 이름:태그 : 이미지 실행
실제 도커 사용하기 위한 기본적인 것들
1. node.js 설치
2. express 설치
3. 코드작성/실행
ㄴ>이걸 알아야 도커도 알아서 사용가능
vscode의 터미널에서
npm init -y : package.json라는 라이브러리 기록용 파일 설치됨
npm install express : express 설치
node server.js : 코드 실행
sudo npm install -g nodemon : 자동으로 저장한 코드를 서버에 띄우고 싶을 때
ㄴ> 이후 실행코드 : nodemon server.js
실제 운영시 pm2로 서버 띄우는 경우 많음
배포하고 싶을때
이제 aws에서 컴퓨터 빌려서 앞의 실제 도커 사용하기 위한 기본적인 것들 부분 순서대로 하면 배포 끝
ㄴ> 귀찮음, 환경 달라져서 자잘한 문제 생김 -> 문제는 도커로 해결
도커 이미지에 os, node.js, express, 코드를 묶어서 만들면 aws 컴퓨터에서 이미지 실행하면 배포
이미지 만들때
배포하고자 하는 코드폴더 안에 Dockerfile 만들기
FROM 이미지명 : 이미지가져오기
이미지는 도커허브에서 찾을 수 있고, 알맞는 버전 검색하면 되는데 slim, alpine들 주로 사용
slim : 필요없는 내용 지운 Debian linux
alpine : 용량이 가장 적은 linux
RUN install express <- 불안정적임
1. packeage.json을 다른 컴퓨터에 복사하기
2. npm install 터미널에 입력하기
COPY . . <- 현재 있는 파일 현재 위치에 다 복붙하기
굳이 복사 할 필요 없는 파일이 있는 경우엔 .dockerignore파일 만들기
내용은 예를 들어 node_modules폴더가 필요 없다면 node_modules(폴더도 같은 방식)
터미널에 docker init : Dockerfile 내용 자동으로 채워줌
터미널에 docker build -t 이미지이름:태그명 . <- 이미지이름, 태그명은 작명