라벨이 name인 게시물 표시

docker 도커 볼륨(Volumes) 사용하기 : NestJS사용 (Named Volumes)

이미지
사진1) 볼륨 구성 이제 볼륨에 이름을 작성하도록 하겠습니다. 이름을 작성하는 것은 docker 터미널을 사용하면서 넣어야 합니다. 이전글 : docker 도커 볼륨(Volumes) 사용하기 : NestJS사용 (Anonymous Volumes) 위 글의 코드를 확인하실려면 해당 gitHub의 useVolume branch를 확인해 주시기 바랍니다.  docker 터미널을 작성시 -v 커멘드를 사용해야 합니다.  사진2) 도커 이름과 경로 지정 사진2에서 '-v'이후에 해당 볼륨을 이름을 생성합니다. 만약 존재하지 않으면 도커에서 새로 생성하고 존재하면 ':'오른쪽 경로에 있는 데이터를 사용하게 됩니다. 사진3) 도커 컨테이너 생성 이제 해당 nestjs의 swagger 페이지에 접속해서 테스트를 진행하도록 하겠습니다. 사진4) 데이터 생성 사진5) 데이터 생성 요청 완료 사진4에서 'Example Value'와 같이 데이터를 생성 요청을 합니다. 그러면 NestJS에서 해당 데이터를 이용하여 파일을 생성 혹은 추가를 하게 됩니다. 파일은 '/app/nestjs/userData/userText.txt'로 저장이 됩니다. 이때 Volume이 입력하고 출력하는 부분이 'userData'폴더 안에 있는 파일들 입니다. 사진6) 저장 데이터 요청 이제 해당 저장 데이터가 저장된 것을 GET요청으로 확인할수 있습니다. 그럼 이전글과 마찬가지로 컨테이너를 정지와 동시에 삭제하도록 하겠습니다. 사진7) 컨테이너 삭제 후 볼륨 상태 이전과 달리 이번에는 'test1'볼륨이 유지되는 것을 알수 있습니다. 그러면 새로운 컨테이너를 생성할때 해당 볼륨을 다시 사용하도록 하겠습니다. 사진8) 새 컨테이너 생성 사진9) 볼륨내 userText.text정보 출력 확인 사진8,9처럼 해당 볼륨을 이용하여 다시 컨테이너를 만들면 해당 컨테이너는 지정된 볼륨의 데이터를 참조하게 됩니다. ...

docker 도커허브(docker hub)에 이미지 받기(Pull)

이미지
 이제 이미지를 'docker hub'에서 받도록 하겠습니다. 'docker hub'에 이미지 올리는 법(Public)에 대해서 알고 싶으시면 아래 링크를 참고해 주시기 바랍니다. 링크1 : docker 도커허브(docker hub)에 이미지 올리기(Push) 사진1) 도커허브에서 참고해야 할 사항 docker hub에 올려져 있는 레파지토리 이미지를 받습니다. $ docker pull [REPOSITORY_NAME]:[TAG OPTIONAL] copy 사진2) 이미지를 도커 허브에서 받음 사진2에서 도커허브로부터 이미지를 받을것을 확인할수 있습니다. 이제 이 이미지로 컨테이너를 생성해서 사용하시면 됩니다. 컨테이너 생성에 대해서는 아래 링크를 확인해 주시기 바랍니다. 링크2: docker 도커를 이용하여 컨테이너(CONTAINER) 생성하기 : NestJS 사용 해당 이미지는 Public 이미지 이기 때문에 누구든지 받으실수 있습니다. 개발자 디스코드 서버 링크

docker 도커허브(docker hub)에 이미지 올리기(Push)

이미지
  사진1) 도커허브 웹사이트 GitHub와 마찬가지로 도커허브(docker hub)또한 해당 이미지를 올리거나 내릴수 있습니다. 하지만 지금은 이미지를 올리는 것에 이 글을 작성하도록 하겠습니다. 만약 도커의 이미지와 컨테이너를 생성하는 방법에 대해서 모르시면 아래 링크를 참고해 주시기 바랍니다. 링크1: docker 도커를 이용하여 이미지(IMAGE) 생성하기 : NestJS 사용 링크2: docker 도커를 이용하여 컨테이너(CONTAINER) 생성하기 : NestJS 사용 사진2) 도커 레파지토리 페이지 사진2에 해당되는 페이지에서 'Create Repository'를 선택해 줍니다. 사진3) 레파지토리 생성 docker hub 사이트에서 이미지를 저장할 레파지토리를 생성합니다. 이때 'Public'와 'Private'이 있습니다. 말 그대로 'Public'는 다른 개발자한테 열려있는 이미지 입니다. 'Private'는 해당 계정만 사용할수 있는 이미지 입니다. 지금은 Public로 진행하겠습니다. 사진4) 레파지토리 생성 생성이 완료되면 해당 레파지토리로 이미지를 올릴수 있습니다.  사진5) 이미지 생성 Local에서 해당 이미지를 생성하는데 주의할 점이 있습니다. 이미지의 Name이 docker hub에서 해당 레파지토리의 Name과 일치해야 합니다. 사진3에서 'alexchoi1/firstdockerhub'가 레파지토리 Name입니다. 그러면 Local의 이미지 또한 'alexchoi1/firstdockerhub'가 되어야 합니다.  $ docker push [REPOSITORY_NAME]:[TAG OPTIONAL] copy 사진6) docker hub로 이미지 push 이제 해당 이미지를 docker hub로 일어줍니다. 사진7) docker hub로 이미지 push 모든것이 정상적으로 올라가면 사진7과 같이 해당 레파지토리...

docker 도커를 이용하여 컨테이너(CONTAINER) 생성하기 : NestJS 사용

이미지
 안녕하세요. 저번에 이어서 이번에는 컨테이어를 만들어보겠습니다. 컨테이너를 만들기 위해서는 이미지가 필요합니다. 이전글을 참고해 주세요 이전글 : docker 도커를 이용하여 이미지(IMAGE) 생성하기 : NestJS 사용 이제 이전에 만든 이미지를 이용하여 컨테이너를 만들도록 하겠습니다. $ docker run -p [LOCAL PORT]:[CONTAINER PORT] [IMAGE ID OR REPOSITORY:TAG] copy 사진1) 이미지를 이용하여 컨테이너 생성 사진1과 같이 해당 터미널을 실행하면 위와 같이 NestJS가 컨테이너로 생성되면서 실행 되는 것을 알수 있습니다. 사진2) Local로 3000포트 접속  사진2에서 Local의 3000포트에 접속시 컨테이너 안의 NestJS서버와 정상적으로 연결이 됩니다. 그  이유는 Local에서 접속한 포트와 컨테이너에서 노출한 포트가 같기 때문입니다. 사진3) 도커 컨테이너 생성 터미널  터미널로 도커 컨테이너 생성시 실제 Local에서 접속하는 터미널은 [LOCAL PORT]입니다. 이때 컨테이너 내부에 연결되는 포트는 [CONTAINER PORT]입니다. 위 예제에서 3000:3000으로 연결했기 때문에 3000포트에 연결 됬지만 2500:3000으로 할시 Local에서는 2500포트로 접속해야 해당 컨테이너의 3000포트에 접근할수 있습니다. 다른터미널로 현재 돌아가고 있는 컨테이너 확인하기 $ docker ps copy 사진4) 현재 돌아가는 컨테이너 리스트 위 터미널을 이용하여 현재 실행되고 있는 컨테이너와 그 정보들을 알수 있습니다. 그런데 이미지와 마찬가지로 NAME을 따로 지정을 할수 있습니다. 현재 컨테이너를 삭제한 후 새로 생성하도록 하겠습니다. 실행하고 있는 컨테이너를 정지하기 $ docker stop [CONTAINER ID OR NAME] copy 사진5) 도커 정지 Name을 지...

docker 도커를 이용하여 이미지(IMAGE) 생성하기 : NestJS 사용

이미지
 안녕하세요. 알렉스 입니다. 이번에는 도커를 이용하여 이미지를 생성하도록 하겠습니다. 도커에서 이미지는 일종의 설계도면이라고 보시면 됩니다. 실질적으로 컨테이너를 만들기 위해서는 이미지가 필요합니다. 따라서 이미지를 어떻게 만드냐에 따라 컨테이너의 성능도 달라질수 있습니다. 사진1) 도커파일 생성(Dockerfile) 일단 도커파일을 생성합니다. 이 도커파일(Dockerfile)은 이미지를 어떤 절차로 실행할지를 알려주는 문서라고 보면 됩니다. # Base 이미지를 사용합니다. (여기서는 node 16버전을 사용합니다) FROM node : 16 # /Dockerfile # 작업 폴더를 설정합니다. 도커내의 폴더를 지정합니다. WORKDIR /app/nestjs # 해당 package.json 파일을 도커의 /app/nestjs폴더로 옮깁니다. COPY package.json /app/nestjs # 해당 package-lock.json 파일을 도커의 /app/nestjs폴더로 옮깁니다. COPY package-lock.json /app/nestjs # 'npm install'을 터미널로 실행합니다. RUN npm install # 복사하지 않은 모든 것을 도커의 /app/nestjs으로 옮깁니다. COPY . /app/nestjs # 'npm run build'을 터미널로 실행합니다. RUN npm run build # 도커 내부에 3000포트를 노출 시킵니다. EXPOSE 3000 # 컨테이너 실행시 'node dist/main'을 터미널로 실행합니다. CMD [ "node" , "dist/main" ] 위 코드는 제가 작성한 도커 파일 입니다. 이 상태로 바로 이미지를 생성할수 있습니다. 하지만 각 단계가 어떻게 진행되는지 알아야 하기 때문에 한줄씩 설명 드리도록 하겠습니다 (주석 참고 가능) - FROM 'FROM'...

node.js check file, folder path or concatenate path

이미지
 Please read how to initialize npm from this  post. 1. require // Reference : https://nodejs.org/dist/latest-v14.x/docs/api/path.html const path = require ( 'path' ); 2. Base File name console . log ( "The Base File Path" ); console . log ( path . basename ( __filename )); Print the current file name. use '.basename' to console.log the file name. The output type is string. '__filename' is the current file. 3. Directory name console . log ( "The File Directory Path" ); console . log ( path . dirname ( __filename )); Print the current file directory. use '.dirname' to console.log the file directory. The output type is string. 4. File Extension console . log ( " The File Extension" ); console . log ( path . extname ( __filename )); Print the current file extension. use '.extname' to console.log the file extension. The output type is string. 5. Create Path Object console . log ( " \n\n The File Whole Info" );...