도커란 무엇인가??

Jobmania·2023년 5월 27일
0

도커 & 쿠버네티스

목록 보기
2/3
post-thumbnail

Docker란?

책에서는 도커는 '데이터 또는 프로그램을 격리시키는 기능'을 제공하는 소프트웨어라고 한다

각각의 프로그램은 도커 위에서 작동하게 되는데

이렇게 분리한 조립형 창고를 컨테이너라고 한다. 그리고 이 컨테이너를 다루는 기능을 제공하는 것이 도커이다. 그렇다면 여기서 이 도커를 사용하고 구동시키기 위한 도커 엔진이 필요하다

컨테이너를 만들려면 이미지가 필요하다

도커 엔진이 기반으로 컨테이너를 동작할 수 있으며, 또한 이미지가 필요하다

컨테이너는 용량이 허락하는한 여러개를 만들 수 있다

또한 도커는 리눅스 컴퓨터에서 사용한다.

맥이나 윈도우에서 도커를 사용한다더라도 리눅스 운영체제가 필요하며, 컨테이너 동작시킬 프로그램도 리눅스용 프로그램이다.

격리하는 이유에 대해서

예시) 프로그램 A, 프로그램 B가 프로그램 C를 연동하여 사용하고 있다고 하자.
만약 연동되고 있는 프로그램 C를 5.0 -> 6.0으로 업데이트 했다고 하자.
하지만 프로그램 A는 5.O버젼에서만 작동이 된다면 오류가 발생할 것이다.
이런 원인은 프로그램간의 공유에서 발생을 한다.
또한 설정파일이 섞이거나 충돌이 발생할 수 있다.

그래서 도커 컨테이너를 사용하면 완전한 분리를 하여 다른프로그램과 격리상태가 된다.
프로그램 A - 프로그램 C (5버젼) | 프로그램 B - 프로그램 C(6버젼)

자유롭게 옮길 수 있는 컨테이너

컨테이너는 자유로이 옮길 수 있다!
도커를 사용하면 물리적 환경의 차이, 서버의 구성의 차이를 무시할 수 있다.
즉, 도커 엔진만 설치가 되어 있따면 어느 서버에서든 컨테이너는 동일하게 작동한다(운영체제가 달라도 이를 신경쓰지 않아도 됨!)
-> 이런 특성을 이용하여 똑같은 상태로 튜닝한 컨테이너를 팀원 전원에게 배포하여 동일한 개발환경을 사용할 수 있다.

도커 컨테이너의 생애주기와 데이터 저장

도커의 컨테이너는 쓰고 버리는 일회용품과 같은것이라고 한다.

즉, 하나의 컨테이너를 업데이트 하기보단, old 버젼의 컨테이너는 버리고, 새로운 버젼의 컨테이너를 만든다.
만들고, 실행하고, 종료하고, 폐기 이를 컨테이너의 생명주기라고한다.

도커의 장점과 단점

환경을 격리할 수 있다

1. 독립된 환경

  • 여러개의 컨테이너를 띄우고, 똑같은 어플리케이션도 여러개 띄울 수 있다.

2. 이미지를 만들 수 있다.

  • 도커 허브에서 이미지를 배포하고 또는 이미지를 내려받을 수 있으며, 교체가 쉽고, 업데이트가 쉬운 장점도 있다.

3. 컨테이너에 커널을 포함시킬 필요가 없다.

컨테이너에서는 커널(운영체제의 핵심이 되는 부분) 을 포함할 필요가 없다. 그래서 가볍다.

이동성, 생성, 보안, 여러 개

장점

  • 한대의 물리 서버에 여러 대의 서버를 띄울 수 있다.
    컨테이너에는 커널이 포함이 되지 않으므로 물리 서버의 운영체제에 의존한다. 이러한 이유로 소프트웨어적으로 하드웨어를 재현하는 가상화 기술 에 비해 압도적으로 가볍다.
  • 서버 관리가 용이하다

단점

  • 호스트 서버에 문제가 생기면 모든 컨테이너에 영향을 끼친다.
    물리서버 한대에 여러 대의 서버를 띄우는 형태이므로
profile
HelloWorld에서 RealWorld로

0개의 댓글