도커(Docker)란?
- OS가상화보다 가볍고 빠르다.- 하드웨어에서 독립적인 공간을 차지하고 (docker 이미지에서 서버 운영을 위한 프로그램과 라이브러리를 격리해서 설치) OS 자원(시스템 콜)은 호스트와 공유
- 독립적인 공간은 컨테이너라고 함
-> 호스트 OS에서 필요한 부분만 부분만 다운받아 돌리기 떄문에 빠르다.
-> 컨테이너로 자신의 상황에 맞는 환경을 구현함 ( 서버, 라이브러리, 프레임워크)
-> 환경 구축을 컨테이너로해서 테스트 및 배포가 쉽다.
A라는 컴퓨터에서 환경을 구축한 후 배포하면 OS 상관없이 어느 컴퓨터든지 Docker만 있으면 똑같은 환경에서 실행 가능
(컨테이너에 침대, 스마트폰, 옷 등을 넣은 다음 배달하는 느낌. 이 컨테이너는 한국, 미국, 독일 등 어디를 가도 똑같은 환경으로 사용 가능함)
게다가 Docker hub로 버전관리까지 효율적으로 가능 (레이어 저장방식)
- 유니온 파일 시스템을 이용하여 여러개의 레이어를 하나의 파일시스템으로 사용할 수 있게 해줌
-> 만약 A라는 이미지가 a+b+c 로 구성되어있고 B라는 이미지가 a+b+d 로 구성이 되어있을 때
사용자는 a,b,c,d 를 받으면 A,B이미지 두개다 사용할 수 있다.
-> 버전을 관리할때도 a+b에서 c를 추가한 버전을 hub로 올린다면 hub에 수정된 부분(c)만 올린다.
-> 그 버전을 다운 받는 사람도 a+b가 있다면 새로운 c만 추가해서 새로운 버전을 받을 수 있다.
도커 설치 (windows 10)
윈도우는 윈도우10 pro, Enterprise 버전을 사용하는게 편하다.
(윈도우 10 home 버전은 Docker Toolbox를 사용해야 한다.)
그리고 컴퓨터 하드웨어 가상화를 지원해야 한다.
(작업 관리자 성능 탭에서 확인 가능)
http://blog.hibrainapps.net/install-docker-on-windows-10-home-or-pro
마운트 -> 리눅스에서 물리적 하드웨어 위치와 폴더의 경로를 연결시켜줌
시스템 콜 -> 프로세스가 하드웨어를 건거드림