Docker

sang hyeok Lee·2022년 4월 17일
0

Docker

Docker란 리눅스 컨테이너 기술을 기반으로 하는 오픈 소스 서비스이다. 도커를 통해서 애플리케이션 실행환경을 코드로 작성할 수 있다. 또 OS를 공유, 격리화하여 관리할 수 있다.

여기서 리눅스 컨테이너란 리눅스 기반의 기술 중 하나이다. 필요한 라이브러리와 애플리케이숀을 모아서 마치 별도의 서버처럼 구성한 것을 말한다. 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유하고 있다.

도커의 작동 방식

Docker기술은 Linux 커널과 함께 Cgroups 및 네임스페이스와 같은 커널의 기능을 사용하여 프로세스를 분리함으로써 독립적으로 실행될 수 있도록 한다. 이러한 독립성은 컨테이너의 본래 목적입니다. 다시 말해서, 여러 프로세스와 애플리케이션을 서로 개별적으로 실행하여 인프라를 더 효과적으로 활용하고 개별 시스템을 사용할 때와 동일한 보안을 유지할 수 있다.
Docker를 포함한 컨테이너 툴은 이미지 기반 배포 모델을 제공하므로 여러 환경 전반에서 애플리케이션 또는 서비스를 모든 종속 항목과 손쉽게 공유할 수 있다. 또한 Docker는 이 컨테이너 환경 내에서 애플리케이션(또는 앱을 구성하는 결합된 프로세스) 배포를 자동화한다.
이러한 툴은 Linux 컨테이너를 기반으로 구축되어 Docker를 사용자 친화적이고 고유하게 만들어 주므로 사용자는 그 어느 때보다도 쉽게 앱에 액세스해 빠르게 배포하고 버전 및 버전 배포를 관리할 수 있다.

도커의 장점

실행속도가 빠르다. OS를 실행하지 않고도 모든 프로세스에 대한 컨테이너를 실행할수있기 때문에 실행속도가 빠르다.
안전하다. container들끼리는 분리되어있기때문에 보안상 이점이있다.
실행환경 구성이 빠르고 간단하다. 프로젝트 개발 및 실행환경을 강제화 가능
비용절감 효과 컨테이너의 크기가 매우 작고, 하나의 물리적 서버에 다수의 컨테이너를 가동시킬 수 있다.

도커의 단점

Docker는 플랫폼 의존적이다. Docker는 실제로 Windows와 Mac에서는 linux 가상머신위에서 동작한다. 결국 Docker는 linux에서만 실행가능하다.
Docker는 bare-metal방식보다 느리다. 도커가 기존의 가상화방식(이미 OS가 설치된 하드웨어 위에 Hypervisor OS를 설치하는 경우)보다 overhead가 적긴하지만, 여전히 bare-metal 방식의 속도에 비하면 느리다.
Docker위에서 GUI 앱을 돌리기가 불편하다. 도커는 command line에서 동작하는 앱을 호스팅하기 위해 디자인되었다. 도커 컨테이너 내에서 GUI앱을 실행하는 것은 가능하지만(X11 forwarding을 이용) 불편하다.

profile
개발자 되기

0개의 댓글