DockerFile 세팅

김세겸·2022년 12월 27일
0

code-camp

목록 보기
1/10

Dockerfile

FROM ubuntu:20.04 => node:14로 받으면 알아서 리눅스 os에 node설치 완료

RUN apt install nodejs => ubuntu 명령어 : RUN같은경우 cmd 명령어 실행

RUN mkdir myfolder => folder 생성

COPY ./index.js myfolder/ => 현재 Dockerfile와 같은경로에 있는 index.js를 myfolder로 복사

RUN cd ./myfolder => 경로 이동

RUN node index.js => index.js 파일 실행 => CMD 사용가능 대신 CMD는 최종 한번만 작동 => 이렇게 할 경우 빌드 99%에서 멈춤 그러므로 실행 명령은 CMD로!!!

WORKDIR => work directory

순서

FROM node:14

WORKDIR /my/
COPY . /my/

RUN npm install
CMD npm run index.js


COPY 할 때는 매번 정보가 바뀔것이다. cache 가 깨진다. -> npm install 이 계속 재실행 된다.
FROM node:14

WORKDIR /my/
COPY ./package.json /my/
RUN npm install -> cache가 유지됨

COPY . /my/

CMD npm run index.js

CMD

docker build . => 도커 이미지 생성

docker images => 도커 이미지 파일 확인

docker run imagesID => 도커 이미지 파일 실행

docker search imagesName => 도커 이미지 검색

docker ps => docker process
docker ps -a => 모든 docker images
docker ps -a -q => containerID만 가져옴

docker exec -it container ID /bin/bash => 접속 해서 변경 수정 가능

exit => docker container에서 나옴

docker stop container ID => 현재 실행중인 컨테이너 종료

docker rm containerID => docker rm docker ps -a -q

docker rmi docker images -a -q

docker system prune -a => docker 초기화

RUN vs CMD

RUN은 build 할 때 실행

CMD는 docker run 할때 실행

container vs images

container는 이미지로 만든 컴퓨터, images는 container를 만들기 위한 정보

실행중인 서버 접근

docker 안에 서버가 실행중임 => 포드포워딩 : 들어오는 포트, 나가는 포트 설정 필요

// 포트포워딩
docker run -p 들어오는포틔:나가는포트 imageID

etc

node_modules는 도커 빌드 할 때 설치 하기
.dockerignore로 node_modules는 가져오지 않는다. 컴퓨터 환경을 맞추기 위해서!!!

0개의 댓글