일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 40HQ컨테이너
- 필터링후복사붙여넣기
- 와끼
- 비슬론지퍼
- 자켓실측
- WHATTIMEOFTHEDAY
- 우레탄지퍼
- 40HQ컨테이너40GP컨테이너차이
- AATCC
- 미니마카
- 웹API
- MERN스택
- 봉제용어
- 슈퍼코딩
- 나일론지퍼
- 헤이큐
- 영어시간읽기
- 고급영어단어
- 미국영어연음
- 암홀트롭
- 핸드캐리쿠리어차이점
- 요척합의
- 엑셀자동서식
- 엑셀드래그단축키
- 지연환가료
- 클린코드
- 비리짐
- TACKING
- 엑셀필터복사붙여넣기
- Armhole Drop
- Today
- Total
CASSIE'S BLOG
Docker (백엔드 서버 구축 + 배포 할 때) 본문
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
'PROGRAMMING > 백엔드' 카테고리의 다른 글
Rest api (0) | 2023.11.14 |
---|