코드캠프 7일차] DB / Docker / Port Forwarding

haengbeok·2022년 9월 11일
0

코드캠프

목록 보기
2/4

DB

데이터베이스는 크게 표(Table) 형식인 SQL과 서류(Collection) 형식인 NoSQL이 있다.
SQL의 대표적인 예로 Oracle, MySQL, Postgresql 등이 있고, NoSQL에는 MongoDB 등이 있다.

SQL과 NoSQL을 사용하지 않고 더 편리하게 데이터베이스에 접근하기 위해 ORMODM을 사용한다.

  1. 데이터를 저장하거나 가져오기 위해 브라우저에서 백엔드 서버API 요청을 보냄
  2. 요청을 받은 백엔드는 DB에 데이터를 저장하거나 가져오는 등의 행동을 하기위해
    ORM(Object-Relational Mapper)이나 ODM(Object-Document Mapper)을 사용

ORM은 테이블로 이루어진 데이터베이스를 다룰 때 사용하는 SQL을 다른 언어에서 쉽게 사용하도록 해줌
ODM은 문서(document)와 collection으로 이루어진 NoSQL 데이터베이스를 다룰 수 있게 해줌

Docker

링크텍스트에 접속해 OS에 맞는 버전을 설치한다.
설치 후 터미널에서 docker --version을 입력해 잘 설치되었는지 확인한다.

Docker란?

컨테이너 기반의 오픈소스 가상화 플랫폼이다.
도커는 개발환경 요소들이 설치된 모습을 이미지로 저장하고 저장한 이미지를 클라우드에 올린다.
이미지들이 서로 연결돼서 동작하는 설정을 문서(Dockerfile)로 저장. 새 컴퓨터에 가서 복사한 문서의 내용대로 이미지를 다운받아 설치한다.

가상머신과 비슷하지만 훨씬 빠르고 자원을 효율적으로 사용한다.
내 컴퓨터 안에 있는 가짜컴퓨터? 느낌

Dockerfile

컨테이너 실행을 위해 이미지를 만들어야한다. Dockerfile이라는 파일을 만들고 이미지를 만들기 위한 명령어를 입력, docker build 명령어로 이미지를 만든다.

FROM node:14

COPY ./index.js /myfolder/

WORKDIR /myfolder/

CMD node index.js

FROM 리눅스:최신버전 리눅스의 최신 버전이 깔린 컴퓨터가 한대 만들어지는데, node, npm, yarn도 설치해야하는데 다른사람들이 만들어놓은 FROM node:14로 node, npm, yarn이 모두 설치되어있는 컴퓨터를 만든다

COPY ./index.js /myfolder/ index.js 파일에 있는 모든 소스 코드를 가상 컴퓨터 안의 myfolder 폴더로 복사하여 해당 폴더에 저장

WORKDIR /myfolder/ 가상 컴퓨터가 만들어지면 명령어를 실행할 작업 폴더를 지정

CMD node index.js 명령어를를 통해서 복사하여 저장된 파일을 실행

docker build

만들어진 설명서로 하나의 이미지로 만들어주는것을 build한다고 표현한다
터미널에 docker build . 명령어를 입력한다.

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 이런 오류가 나오면 docker 프로그램이 켜져있나 확인

빌드가 완료되면 이미지가 생성된 것이고 docker images 명령어로 확인할 수 있다.

docker run

docker run 이미지ID 를 입력하여 이미지를 실행시키면 가상 컴퓨터가 하나 만들어진다.
이 가상 컴퓨터를 컨테이너라고 부른다.

docker ps - 실행중인 컨테이너 목록 확인
docker ps -a - 종료된 컨테니이너까지 전부 확인
docker rm 컨테이너ID - 컨테이너 삭제

.dockerignore

기존에 있는 node_modules 폴더의 복사를 방지하기 위한 설정

.dockerignore 파일을 새로 만들고 node_modules 를 적어준다

docker 내부 접속

실행한 컨테이너에 접속하기 위해 docker exec -it 컨테이너_아이디 /bin/bash 명령어를 입력하면 bash 쉘로 바뀐다.
pwd, ls등 명령어가 동일하게 작동한다
exit 명령어로 종료할 수 있다

포트 포워딩(Port Forwarding)

외부에서 내부의 도커 컨테이너로 접속하기 위해서 포트 포워딩(Port Forwarding) 을 해줘야 한다
docker run -p 포트번호:포트번호 이미지_아이디

0개의 댓글