🌼 학습내용
Docker 전반적인 이해
🐶 Docker 사용법
⛔️ befor
1. Dockerfile파일은 만든다.
2. .dockerignoer에 node_modules 추가
3. Dockerfile 안에
FROM node:14
COPY . /myfolder/
WORKDIR /myfolder/
RUN yarn install
CMD yarn start:dev
⛔️ after
FROM node:14
COPY ./package.sjon /myfolder
COPY ./yarn.lock /myfolder
WORKDIR /myfolder/
RUN yarn install
COPY . /myfolder/
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안에 실행되는 컴퓨터의 서버로 요청