본문 바로가기
데이터엔지니어링/Docker

[Docker] 도커

by 잼있는잼니 2023. 3. 15.

 

도커??

 

도커(Docker)리눅스 컨테이너 기반오픈소스 가상화 플랫폼이며, 애플리케이션을 컨테이너에 담아 배포가 가능하다.

이를 통해서 서버 환경에 대한 의존성을 줄이고, 애플리케이션의 이식성높일 수 있다.

도커이미지컨테이너로 구성이 되어 있는데, 여기서 이미지애플리케이션을 실행하는데 필요한 파일과 설정을 포함하고, 컨테이너는 이 이미지를 기반으로 생성되고, 애플리케이션 실행 환경을 독립적으로 제공하게 된다.

 

 

 

도커는 가상머신(VM)과 유사한 기능을 제공하나, VM보다 가볍고 빠르다.

도커는 가상화 기술을 이용해서 컨테이너를 생성하는데, OS위에 도커 엔진이 작동하며, 컨테이너 별로 Bins/Libs가 작동하고 각각의 App이 작동하게 된다. VM의 경우Hypervisor 위에 각 OS가 올라가고 OS별 Bins/Libs가 작동하고 App이 작동된다는 차이가 존재한다.

 

Docker architecture

Docker Architecture in Detail - Whizlabs Blog

도커 클라이언트도커 사용자가 도커와 상호작용하기 위한 방법으로, 도커 명령어를 통해 도커 데몬과 통신할 수 있다.

도커 데몬도커 API 요청을 받고, 이미지, 컨테이너, 네트워크같은 도커 개체를 관리한다.

도커 레지스트리도커 이미지를 저장하고, 도커 허브라는 공용 레지스트리와 개인의 레지스트리가 있다.

docker pull이나 docker run명령어를 이용하면, 필수 이미지를 가져오며, docker push 명령어를 이용하면, 이미지를 레지스트리에 저장을 할 수 있다.

 

도커를 이용하는 이유?

도커는 도커 이미지를 통해 애플리케이션을 배포가 가능하며, 애플리케이션의 실행 환경을 이미지로 만들어서 배포할 수 있다. 이 도커 이미지는 도커 레지스트리에 저장이 되어 언제 어디서든 배포할 수 있다. 즉, 애플리케이션 배포시간을 줄일 수 있고, 배포시 발생하는 에러도 줄일 수 있는 장점이 있다.

 

도커는 여러 컨테이너를 생성하고 클러스팅해서 관리를 할 수 있으며, 서비스에 대한 가용성과 확장성을 높일 수 있다.

 

도커는 다양한 운영체제(리눅스, 윈도우, 맥 OS)에서 동일한 환경을 유지하며, 애플리케이션을 배포할 수 있다.

 

도커 주의사항

 

도커는 가상화 기술을 이용하여 컨테이너를 생성하는데, 이는 호스트와 컨테이너 간의 자원 공유로 인해 보안 위험이 존재할 수 있다.

 

도커는 여러 개의 컨테이너를 생성하면서, 각 컨테이너 간의 연결과 데이터 공유를 위한 네트워크 설정이 필요하다.

이에 대한 설정이 부적절하게 이루어지면, 보안 문제가 발생할 수 있다.

 

이러한 보안적인 측면을 고려하여 도커를 사용해야 한다.

댓글