Doker

wooo·2023년 5월 7일
0

Doker 란?

도커는 개발 환경 요소들이 설치된 모습을 이미지로 저장한다. 저장한 이미를 클라우드에 올리고 이미지들이 서로 연결되어 동작하는 설정을 문서(DockerFile)로 저장한다.새 컴퓨터에 가서 복사한 문서의 내용대로 이미지를 다운 받아 설치한다.

이러한 점은 가상머신과 비슷하다고 볼 수 있다. 하지만 가상머신보다 훨씬 빠르고, 자원을 효울적으로 사용한다. 아래의 그림을 보면 왼쪽이 가상머신, 오른쪽이 도커이다. 도커에는 불필요한 추가적인 운영체제 설치가 필요 없다.

도커 허브에는 npm 다운 받는 것처럼 다른 사람드링 올려놓은 이미지를 다운로드 할수도 있다. 또한 한 컴퓨터에서 다른 환경의 여러 서비스를 실행해야하는 경우, 컨테이너로 분리되어 있기 때문에 서로 독립되어 실행될 수 있다.

이것들을 모두 간단한 명령어로 실행할 수 있다.

Docker를 사용해서 배포하는 이유

서버를 돌리기 위해서는 먼저 환경이 갖춰져야한다.
새로 컴퓨터를 샀다거나 새로 직원이 들어왔다고 가정해보자. 그럼 새로운 컴퓨터에 우리가 개발한 환경과 똑같이 만들어줘야 한다. 이를 위해 Node.js와 같은 언어, 그리고 언어의 버전, 데이터베이스 등 수많은 node_modules를 버전에 맞춰서 설치해줘야한다.
매번 이렇게 구축하는 것은 매우 번거로운 일이기 때문에 이를 간편하게 해주는 도커를 사용한다.

도커 설치
https://www.docker.com/ 도커 홈페이지에 접속한 뒤, Get Started 를 누르면 끝!

Docker-compose의 이해

여러가지 컨테이너를 다룰 때 좀 더 복잡한 설정이 필요하게 된다. 이럴 떄 Docker-conpose를 사용한다. docker-compose.yml파일을 미리 만들어서 설정을 어떻게 할지 적어둔다. 그리고 docker-compose up 명령어를 입력해서 컨테이러는 실행한다.

// docker-compose.yml 파일 예시 ( yml 파일은 들여쓰기를 꼭 지켜주어야한다!!! )

version: "3.3"

services:
  class_build:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3000:3000

Dockerfile

컨테이너를 실행하기 전에 먼저 해줘야할 것은 이미지를 만드는 것이다 Dockerfile이라는 이름의 파일을 만들고 이미지를 만들기 위한 명령어를 입력한다. 그리고 docker-compose build명령어를 통해 이미지를 만들게 된다.

// Dockerfile 예시

FROM node:16

WORKDIR /class_build/
COPY . /class_build/

RUN yarn install
RUN yarn build
CMD yarn start

환경 변수 설정

Dockerfile 안에서 환경 변수를 설정하고 싶을 때는 ENV명령어로 설정한다.

ENV [key] [value]
ENV [key]=[value]

0개의 댓글