TIL 01.09 Code_Camp 7일차 Docker

박선우·2023년 1월 17일
0

WIL

목록 보기
32/33
post-thumbnail

🌼 학습내용

Docker 전반적인 이해

🐶 Docker 사용법

⛔️ befor

1. Dockerfile파일은 만든다.
2. .dockerignoer에 node_modules 추가
3. Dockerfile 안에
// 1. 운영체제 및 프로그램 설치(하나 하나 입력하는 방식)
//FROM ubuntu:22.04

// RUN apt install nodejs
// RUN npm install -g yarn

// befor
// 1. 운영체제 및 프로그램 설치(이미 리눅스, node, npm ,yarn 까지 모두 깔려있는 컴퓨터 다운로드하는 방식)
FROM node:14

// 2. 내 컴퓨터에 있는 폴더나 파일을 도커 컴퓨터 안으로 복사하기
// RUN mkdir myfolder => 아래에서 COPY할 떄, 자동으로 만들어주므로 굳이 필요없음.
COPY . /myfolder/

// 커서 위치 봐꾸기
WORKDIR /myfolder/

RUN yarn install
// 3 . 도커안에서 index.js 실행시키기
CMD yarn start:dev

⛔️ after

// 1. 운영체제 및 프로그램 설치(이미 리눅스, node, npm ,yarn 까지 모두 깔려있는 컴퓨터 다운로드하는 방식)
FROM node:14

// 2. 내 컴퓨터에 있는 폴더나 파일을 도커 컴퓨터 안으로 복사하기
// RUN mkdir myfolder => 아래에서 COPY할 떄, 자동으로 만들어주므로 굳이 필요없음.
COPY ./package.sjon /myfolder
COPY ./yarn.lock /myfolder
WORKDIR /myfolder/
RUN yarn install

COPY . /myfolder/
// 3 . 도커안에서 index.js 실행시키기
CMD yarn start:dev

2️⃣ Dockerfile1와 Dockerfile2차이

  • Dockerfile1 은 매번 모든 파일을 복사하기 때문에 packge.json을 매번 install 하게 된다.
  • Dockefile2은 packge.json와 yarn.lock의 변경사항이 없다면 기존에 캐싱해둔 파일을 가져오게 된다.
  • 불필요한 파일을 다운로드할 필요가 없어지게 된다.!!

3️⃣ 도커 명령어

1. docker build . -> 도커 imgaes 만들기
2. docker images -> images의 목록을 불러온다
3. docker run 이미지id -> docker를 실행 시킨다(CMD yarn start:dev)
4. docker ps -> docker 켜져있는 컨테이너 확인
5. docker exec -it 컨테이너id /bin/bash -> docker 컨테이너 들어가기
6. docker stop 컨테이너id -> 컨테이너 종료(삭제되는건 아니다!)
7. docker ps -a -> docker 모든 컨테이너 확인
8. docker ps -a -q -> docker 꺼져있는 컨테이너 확인
9. docker rm 컨테이너id -> docker 삭제
10. docker rm `docker ps -a -q` -> docker 전체 컨테이너 삭제(실행중인 컨테이너 제외)
11. docker rmi -> docker 전체 images 목록
12. docker rmi docker images -q -> docker 전체 images 가져오기
13. docker rmi `docker images -q` -> docker 전체 images 삭제(실행중인 이미지 제외)
14. docker system prune -a -> docker 컨테이너, images 전체 삭제(실행중인 이미지, 컨테이너 제외)

4️⃣ 엔드 포인트

원래 서버 index.js port = 4000 번일떄

docker run -> 통신 불가
docker run -p 3000:4000 -> 3000번포트로 보내면 docker안에 실행되는 컴퓨터의 서버로 요청

만약,
http://127.0.0.1:4000/ -> 요청을 보내게 되면 요청 불가

http://127.0.0.1:3000/ -> 요청을 보내게 되면 docker안에 실행되는 컴퓨터의 서버로 요청
profile
코린이 열심히 배우자!

0개의 댓글