Docker란?

hodu·2023년 4월 15일
0

최근 프로젝트를 진행하면서 Docker에 대해 알게 되었다.


Git 다음으로 선호도가 높을 정도로 인기가 많았고, 접할 기회가 없어서 호기심이 생겼다.

Docker란?

3가지 요소들을 컨트롤하여 다른 OS 환경에서도 같은 환경을 조성하게 도와준다.

생긴 이유


개발 환경에서는 돌아가는데, 서버에서는 해당 설정이 달라서 돌아가지 않는 경우가 발생한다.


이는 Node.js 버전이 다르거나, NPM 등등 다양한 요소들의 차이에서 벌어진다. 그래서 개발자는 이러한 상황에 맞춰 매번 대비해야하는데 번거로움이 크다.


그래서 이러한 문제점들을 해결해주기 위해서 Docker가 등장하였다.
Docker는 해당 상황에 맞게 관리해주고 버전 관리 및 환경을 대신 관리해준다.

구성요소

docker는 구성요소가 총 3가지이다. 먼저 Dockerfile인데,

이는 환경을 설정해주는 일종의 Docker에게 어떻게 작동해야하는지 알려주는 안내문이다.

Dockerfile을 이용하여서 구동 되는데 이것을 런타임 환경 및 시스템 환경을 스냅샷해서 이미지로 남겨 놓는다.


그러면 이 Image를 이용하여서 Container가 구동이 된다.
Image는 일종의 객체지향형 프로그램에서 class라고 생각하면 되고,
Container는 일종의 instance다

Container

상황에 맞는 해당 설정을 해주면, 필요한 것들을 다운로드 받고 Virtual Container를 컴퓨터에 만든다.

컨테이너들은 독립적으로 각기 다른 많은 OS 환경을 만들 수 있다.

위와같이 여러 설정을 할 수 있는데 필요에 의해서 파이썬 서버 및 여러 환경의 서버를 늘릴 수도 있고, 줄일 수도 있다. 이러한 장점으로 매번 새로운 서비스가 필요할 때마다 서버를 사고 설정할 필요가 줄어든다.

원할때마다 생성하고 복제하면 된다.

1. Docker 파일을 빌드하고, push하면 다른 유저가 image를 활용하여 pull받아서 run할 수있다.

장점들을 요약하면

1.내가 원하는 환경을 만들어준다.

2.독립적이기때문에 모듈식으로 관리 가능하다.

실제로 회사에서는 image를 활용하여 회사 정보가 유출될 것을 우려하여서 Aws 등을 이용한다.

출처

https://www.youtube.com/watch?v=chnCcGCTyBg
https://www.youtube.com/watch?v=LXJhA3VWXFA

profile
잘부탁드립니다.

0개의 댓글