Docker

ALSWL·2025년 3월 30일

같은 코드를 다른 컴퓨터에서 사용하려할때 도커 사용.
코드를 보내서 실행하면 디제스터가 일어나는 경우가 많음.(컴퓨터 환경이 다르기 때문)
도커는 코드(필요한 프로그램, 실행할 코드, 개발용 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 이미지이름:태그명 . <- 이미지이름, 태그명은 작명

0개의 댓글