[도커] Part2: Sample Application docs.docker.com/get-started/

DongGu·2021년 3월 24일
0

Part 2: Sample Application

이 튜토리얼의 나머지 부분에서는 Node.js에서 실행 중인 간단한 작업관리 목록 관리자를 사용하여 작업하게 됩니다. Node.js에 대해 잘 모르더라도 걱정할 필요 없다. JavaScript를 몰라도 괜찮다.

현재 귀사의 개발 팀은 규모가 매우 작으며 귀사의 MVP(최소 실행 가능한 제품)를 입증하기 위한 앱을 구축하기만 하면 된다. 대규모 팀, 여러 개발자에게 어떻게 작동하는지 생각할 필요 없이 무엇을 할 수 있는지 보여주려고 합니다.

Get the app

어플리케이션을 실행하기 전에 어플리케이션 소스 코드를 컴퓨터에 연결해야 한다. 실제 프로젝트의 경우 일반적으로 repo를 복제한다. 그러나 이 튜토리얼의 경우 어플리케이션이 포함된 ZIP 파일을 만들었다.

앱 콘텐츠를 다운로드한다. 전체 프로젝트를 풀링하거나 zip으로 다운로드하고 앱 폴더를 추출하여 시작할 수 있다.

압축을 푼 후에는 즐겨 찾는 코드 편집기(ex. visual studio code)를 사용하여 프로젝트를 엽니다. package.json을 열어보면 json 및 두 개의 하위 디렉터리(src 및 spec)가 있다.

Build the app's container image

애플리케이션을 구축하기 위해서는 Docker 파일을 사용해야 한다. Docker 파일은 컨테이너 이미지를 만드는 데 사용되는 명령어의 텍스트 기반 스크립트일 뿐이다. 이전에 Docker 파일을 작성한 적이 있는 경우 아래 Docker 파일에 몇 가지 결함이 있을 수 있다. 확인할 것이니 걱정 안해도 된다.

  1. 파일 패키지와 동일한 폴더에 Dockerfile이라는 파일을 만듭니다.다음과 같은 내용을 가진 json 파일을 작성해라
 FROM node:12-alpine
 WORKDIR /app
 COPY . .
 RUN yarn install --production
 CMD ["node", "src/index.js"]

Docker 파일에 .txt와 같은 파일 확장명이 없는지 확인하라. 일부 에디터는 이 파일 확장자를 자동으로 추가할 수 있는데, 이는 경우 다음 단계에서 오류를 일으킬 수 있다.

  1. 아직 열지 않은 경우 터미널을 열고 Docker 파일이 있는 앱 디렉토리로 이동한다. 이제 Docker build 명령을 사용하여 컨테이너 이미지를 작성한다.
    docker build -t getting-started .
    한 칸 띄우고 점 찍자 꼭!!!

이 명령은 Docker 파일을 사용하여 새 컨테이너 이미지를 구축했다. 당신은 아마도 많은 "계층"이 다운로드되었다는 것을 확인할 것이다. 이것은 우리가 node:12-alpine인 이미지로부터 시작하기 원한다고 빌더에게 지시했기 때문이다. 하지만 우리 기계에 그런 것이 없었기 때문에, 그 이미지는 다운로드가 필요했다.

이미지가 다운로드된 후, 우리는 애플리케이션을 복사하고, 애플리케이션의 dependencies를 설치하기 위해 yarn을 사용했다. CMD 지시문은 이 이미지에서 컨테이너를 시작할 때 실행할 기본 명령을 지정한다.

마지막으로 -t flag가 이미지에 태그를 지정합니다. 이것을 단순히 인간이 읽을 수 있는 최종 이미지에 대한 이름이라고 생각해 보라. 이미지 이름을 Getting-started라고 지었으므로 컨테이너를 실행할 때 해당 이미지를 참조할 수 있다.

Docker build 명령의 끝에 있는 .는 Docker가 현재 디렉토리에서 Docker 파일을 찾아야 한다고 말합니다.

Start an app container

이제 이미지가 생겼으니 애플리케이션을 실행해보자! 이를 위해 Docker run 명령을 사용한다.

1.Docker run 명령을 사용하여 컨테이너를 시작하고 방금 만든 이미지의 이름을 지정한다.
docker run -dp 3000:3000getting-started

-d 및 -p 플래그를 기억하나요? 새 컨테이너를 백그라운드에서 "분리" 모드로 실행하고, 호스트의 포트 3000과 컨테이너의 포트 3000 사이의 매핑을 만들라는 명령어다. 포트 매핑이 없으면 애플리케이션에 액세스할 수 없다.

  1. 몇 초 후 웹 브라우저를 열어 http://localhost:3000을 선택한다. 앱을 확인해보자.
  1. 한 두 가지 항목을 추가하고 예상대로 작동하는지 확인한다. 항목을 완료로 표시하고 항목을 제거할 수 있다. 프런트 엔드가 항목을 백엔드에 성공적으로 저장하고 있다.

이 때 몇 가지 항목이 포함된 실행 중인 작업관리 목록 관리자가 있어야 한다. 이제 몇 가지 사항을 변경하고 컨테이너 관리에 대해 알아볼 것이다.

Docker Dashboard를 보면 지금 실행 중인 두 개의 컨테이너(이 튜토리얼과 새로 시작한 앱 컨테이너)를 볼 수 있다.

Recap

이 짧은 섹션에서는 컨테이너 이미지 작성에 대한 기본 사항을 학습하고 이를 위한 Docker 파일을 만들었다. 일단 이미지를 구축한 후, 우리는 컨테이너를 시작했고 실행 중인 앱을 봤다!

다음으로, 앱을 수정하고 실행 중인 응용 프로그램을 새 이미지로 업데이트하는 방법에 대해 알아보자. 이 과정에서 몇 가지 다른 유용한 명령에 대해 알아보겠다.

profile
코딩하는 신방과생

0개의 댓글