관리 메뉴

CASSIE'S BLOG

Docker (백엔드 서버 구축 + 배포 할 때) 본문

PROGRAMMING/백엔드

Docker (백엔드 서버 구축 + 배포 할 때)

ITSCASSIE1107 2023. 10. 15. 14:58

Docker

어플리케이션을 패키징 할 수 있는 툴이다. 
도커: 컨테이너 기반의 오픈소스 가상화 플랫폼

컨테이너라고 불리우는 하나의 작은 소프트웨어 유닛안에 어플리케이션과 그에 필요한 시스템 툴, Dependencies 를 하나로 묶어서 다른 서버, 다른 pc 그 어떤 곳에도 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 툴이다.

 

Node.js 예를 들어보면 우리 소스 파일만 서버에 배포하는 것으로는 문제가 많다.

node.js와 npm, 외부라이브러리를 사용한다면 여러 디펜던시와 환경설정하는 것, 환경변수 이런 모든 것들을 다 설정을 해줘야하는데 서버마다, 개발하는 개발자들의 pc마다 이 모든 것들을 설치하고 설정하는 것은 번거로운 일이다.

내가 node.js를 가지고 있고 서버에도 node.js가 있으니까 소스코드를 서버에 배포하면 자동으로 동작하겠지 생각하다가는 에러가 발생할 수 있다는 거죠. 

내 pc에서는 잘되는데 웹서버에서는 안되는거지 디버깅을 하다보면 node.js버전이 맞지 않아서 생기는 문제도 있습니다.

도커 안에는 우리 어플리케이션 뿐만 아니라 노드js환경설정, npm, 여러 라이브러리 dependencies, 어플리케이션에 필요한 다양한 리소드들이 포함될 수 있다.

 

(📌공식 홈페이지 : https://www.docker.com/)

  백엔드를 공부하다보면 Docker라는 말을 한 번쯤은 들어보았을 것이다. Node.js의 2016년 설문조사에 의하면 응답자 중 45%가 컨테이너 기술을 Node.js와 함께 사용한다고 답했다. 웹 분야 뿐만 아니라 IoT 개발자 중 58%가 Node.js와 Docker를 함께 사용한다고 답했다. 즉, Node.js와 Docker는 함께 사용하기에 좋은 조합이라 말할 수 있다.(이는 MSA와 관련이 크다.)


다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줌. 백엔드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화할 수 있고 조립PC, AWS, Azure, Google cloud등 어디에서든 실행할 수 있음.

 

Docker를 이해하기 위해선 Container와 Image라는 개념을 알고 있어야함. 

 

 

 

 

 Dockerising Node.js

  Docker로 Node.js 서버를 개발하기 위해선 서버 코드 작성 > Dockerfile 작성 > 이미지 빌드/실행 과정을 거친다.

 

서버 코드 작성하는 거를 이 분이 잘 정리해주셨다. 

 

참고하기:

 

https://study-ihl.tistory.com/119

 

Docker

백엔드를 공부하다보면 Docker라는 말을 한 번쯤은 들어보았을 것이다. Node.js의 2016년 설문조사에 의하면 응답자 중 45%가 컨테이너 기술을 Node.js와 함께 사용한다고 답했다. 웹 분야 뿐만 아니라 I

study-ihl.tistory.com

 

반응형

'PROGRAMMING > 백엔드' 카테고리의 다른 글

Rest api  (0) 2023.11.14