ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dockerfile 의미
    카테고리 없음 2022. 7. 29. 13:14

     

    Dockerfile에서

    FROM node는 docker hub가서 node이미지를 받아옴

     

    WORKDIR은 도커 이미지에서 어디서 작업을 할지를 의미한다. 여기서는 /app이므로 이미지의 /app에서 작업을 한다.

     

    COPY . . 의 의미

    왼쪽 . 은 현재 있는 파일들에서 Dockerfile제외하고 모든 파일을 의미한다.

    오른쪽 . 은 image 내부를 의미한다.

    즉 VSCode에 있는 Dockerfile를 제외한 파일들을 모두 image내부로 복사한다는 뜻이다.

    그래야 이미지가 만들어지겠지

     

    그러므로 COPY . /app 과 같은거는 VSCode에 있는 Dockerfile를 제외한 파일들을 모두 image내부에 /app 으로 옮긴다는 뜻이다.

     

    상대주소도 가능하다. COPY . ./ 으로 하면 위에서 WORKDIR /app 이므로 COPY . /app과 같은 의미가 된다.

     

    RUN은 이미지를 빌드할때 라이브러리를 다운받기위해 실행한다.

    node이므로 npm install을 해준다.

     

    EXPOSE 80 은 이미지를 만들고 이미지를 통해 컨테이너를 만들면(?) 완벽히 격리된 상태이므로 해당 컨테이너의 포트를 열어줘야한다.

     

    server.js를 보면 80번포트로 listen하므로 EXPOSE 80으로 컨테이너를 열어준다.

     

    CMD는 이미지가 만들어지면 실행시켜준다. node server.js를 하면 server.js가 실행된다.

     

    docker build . 를 하면 현재 디렉터리에서 Dockerfile를 읽어서 이미지를 만들어준다.

    이미지를 만들고 id를 기억해준다음.

    docker run id 를 하면 된다.

     

    하지만 실행 되지 않는다.

    내 생각상 컨테이너가 80번 포트를 열었다고 해서 노트북 브라우저에서 컨테이너의 80번 포트로 포트포워딩 해주는 작업이 없기 때문에 안되는거 같다.

     

    그러므로 docker run -p 3000:80 IMAGEID 를 하면 localhost:3000 이라고 브라우저에서 입력하면 컨테이너의 80번 포트로 들어오게 된다.

     

     

     

Designed by Tistory.