본문 바로가기

Docker

Docker 개발관리 활용 - 2. Docker 개요

Docker

- Linux Kernel을 공유하는 Container 기술을 사용하여 가상환경을 구성하는 기술 

- OS레벨에서 필요자원을 격리 및 할당 하기때문에 VM에 비해 성능이 뛰어나다

- OS와 서비스환경을 분리하여 서비스환경 부분을 이미지화 하여 배포하는 방식으로 사용 하며 서비스 환경의 업데이트는 이미지를 교체하는 식으로 이루어진다

 

Docker의 특징

효율성 : 컨테이너는 OS 커널을 공유하기 때문에 성능적 오버헤드를 야기시킬 경우가 적다

신속성 : 서비스 요청량 증게에 따른 자원관리가 용이하며 컨테이너 자체의 용량이 적기 때문에 신속하게 가볍게 작업가능하다

라이센스 비용절감 : VM처럼 각각 OS설치가 필요하지 않다

안정성 : 오케스트레이션을 통해 자원의 편향성을 해결하여 안정적인 운용이 가능하다

 

Container

- 각각의 App마다 고유한 User space를 제공하여 필요한 Version의 파일시스템을 사용할수 있다

- 각 Container 단위로 system을 갖도록 하면 proccess간에 kill이 불가능하다

- Scale-in과 Sacle-out을 자유자재로 할 수있다(필요한 자원을 효율적으로 사용가능)

- 배포시에 OS가 포함되지 않기 때문에 용량이 적어 빠른 시간내에 배포가 가능하다

 

Docker 설치

curl -sSL get.docker.com | bash //쉘 스크립트를 사용하여 설치

systemctl enable docker //시스템 시작시에 자동으로 서비스 시작

systemctl start docker //도커서비스 시작

systemctl status docker //상태확인

Docker 정보 확인

- docekr version

 

- docker info

ls -l /var/lib/docker

root directory 내용 확인

Docker 관리자 추가

usermod -aG docker adminuser 

find / -name docker.sock

ls -l /run/docker.sock

docker.sock 파일은 Docker API의 주요한 entry point로서 docker daemon이 Listening하고 있는 UNIX socket이다

docker.sock 파일의 Permission을 확인하면 어떤 사용자 및 그룹이 Docker Daemon을 관리할수 있는지 파악할수있다