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
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을 관리할수 있는지 파악할수있다