docker 배포하기(NestJS, Prisma, Lightsail)

gwanhun·2023년 10월 4일

1. 로컬 셋팅하기

  • 도커 설치

    • 공식 사이트 또는 Docker hub에서 본인 사양에 맞는 설치 파일을 다운로드한다.

      도커 공식 홈페이지

  • 도커파일 작성

    • prisma 설정
  • 도커 이미지 생성

    • 아래 명령어로 이미지 파일을 생성한다.
      • docker build -f Dockerfile -t <이미지 파일 이름> .
        마지막에 점(파일 경로 설정)을 꼭 넣어야함
    • M1 맥북에서 테스트 하려면 --platform linux/arm64 필요
    • lightsail 인스턴스 서버에 배포하려면 이걸 추가 해서 이미지 생성해야함
      • docker build **--platform linux/amd64** -t gwanhun/gaglish:prisma43 -f Dockerfile .
      • prisma.schema에서 주석 처리한 부분 확인 필요

    • 아래 명령어로 생성된 이미지 파일을 확인한다.
      • docker images
  • 컨테이너 테스트

    • 컨테이너 생성 docker run -d -p 8080:8080 <이미지 이름>
    • 현재 실행중인 docker 파일 확인 docker ps
    • 도커 로그 확인 docker logs <도커 컨테이너 아이디>
  • 도커 허브에 올리기

    • 도커에 로그인
      • docker login
    • docker hub에 생성한 repository 이름과 일치시킨다.
      • docker image tag <image id> <new_name>
    • 아래 명령어로 docker hub에 push 한다.
      • docker push <image name>

      • 도커 허브에 push 할 repository에 들어가변 아래와 같이 나와 있다.

    • https://yeko90.tistory.com/entry/how-to-upload-image-in-docker-hub

2. vm 셋팅하기

  • lightsail 인스턴스(우분투OS)에 도커 설치하기
    1. 패키지 업데이트

      sudo apt update

    2. https관련 패키지 설치

      sudo apt install apt-transport-https ca-certificates curl software-properties-common

    3. docker repository 접근을 위한 gpg 키 설정

      curl -fsSL https://download.docker.com/linux/ubuntu/gpg

    4. docker repository 등록

      sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu

    5. 다시 업데이트

      sudo apt update

    6. 도커 설치

      sudo apt install docker-ce

    7. 설치 확인

      docker --version

  • 도커허브에서 이미지 받아오기
    • docker pull <도커허브 이미지 이름>
  • 컨테이너 실행하기
    • 컨테이너 생성 docker run -d -p 3000:3000 <이미지 이름>
    • 현재 실행중인 docker 파일 확인 docker ps
    • 도커 로그 확인 docker logs <도커 컨테이너 아이디>

3. 명령어 정리

  • docker logs -f [컨테이너 아이디] : 실시간 컨테이너 로그 확인
  • docker rm [컨테이너 아이디] : 컨테이너 삭제
  • docker stop [컨테이너 아이디] : 컨테이너 정지
  • docker rmi [이미지 아이디] : 이미지 삭제
  • docker ps -a : 모든 컨테이너 확인하기

https://blog.naver.com/complusblog/220974632766

profile
주니어 백앤드 개발자

0개의 댓글