1. Docker
- Container 기반의 가상화 플랫 폼
- Container 기반의 가상화 vs 하이퍼바이저 기반의 가상화(OS가상화)
- Container 기반의 가상화
- 가상화(Virtualization)
- 물리적인 Components를 Logical(논리적인) Object로 Abstract Painting(추상화) 하는 것을 의미하는데, 하나의 장치를 여러 개처럼 동작시키거나 반대로 여러 개의 장치를 묶어 하나의 장치인 것 처럼 User에게 Share자원으로 제공 할 수 있어 Cloud Computing을 위한 핵심 기술 임
- Container
- Module화되고 격리된 Computing place or computing environment(환경)를 의미하며, System environment(환경) dependency(의존성)을 탈피하고 안정적으로 구동되는 것을 말함
- 개발한 프로그램이 구동환경의 달라짐에 따라 예상하지 못한 각종 오류를 발생시키는 것을 해결하기 위함임
- Virtualization에서 하이퍼바이저와 게스트OS가 불필요함
- OS Level에서 Process를 격리하여 Module화된 프로그램 package로써 수행함
- Virtualization 보다 가볍고(수십 MB) 빠름
- 더 많은 응용 프로그램을 더 쉽게 하나의 물리적 서버에서 구동시키는 것을 가능하게 만듬
- 하이퍼바이저 기반의 가상화
- 하이퍼바이저
- Share Computing 자원을 관리하고 가상머신들을 컨트롤(I/O 명령 처리)하는 중간 관리자 역할을 함
- 사용되는 물리 H/W를 Host라고 하며 리소스를 사용하는 여러 VM(Virtual Machine)을 게스트라고 함
- 할당되었던 리소스를 각 VM에 제공하고, 물리 리소스에 대해 VM 리소스의 일정을 관리함
- 다른 여러 개의 OS를 나란히 구동 할 수 있고, 동일한 Virtualization H/W 리소스를 Share함
2. Docker Hub
- Docker에서 제공하는 이미지 저장소 임
- Github와 같은 개념이라 생각하면 됨
3. Docker Compose
- 다중 Container를 정의하고 실행하기 위한 도구임
- YAML File을 사용하여 다중 Container를 구성 함
4. Docker Install
5. MySQL Docker Image Down-Load
- MySQL Docker - https://hub.docker.com/
- DockerHub 검색 창에서 MySQL 검색 그리고 첫번째로 나온 MySQL 클릭 후 우측 상단에 docker pull mysql 이라고명령어를 복사 한 후에 cmd(명령프롬프트)에 “docker pull mysql” 붙여넣기 후 “docker pull mysql:{version}” 버전에 맞게 작성하고 Enter!
- MySQL Docker Container 생성 및 실행 함
- docker run —name mysql-sample-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:{version}
- 위 명령어를 해석 해보겠습니다!
- docker run : 도커를 실행할건데?
- —name : 도커의 이름은?
- mysql-sample-container : 도커 컨테이너의 이름!
- MYSQL_ROOT_PASSWORD : mysql_root_패스워드를 뭘로 설정 할거니?
- 3306:3306 : 포트번호는 3306번으로 설정할거다!
- mysql:{version} : 도커의 이미지는 이런 버전으로 설정하겠다는 의미!
- 현재 실행중인 Docker Container 목록 출력 함
- MySQL Docker Container 접속 하기!
- 명령어 : docker exec -it{Docker Container Name} bash
- MySQL 접속하기!
- 명령어 : mysql -u root -p
- password : 내가 MYSQL_ROOT_PASSWORD=<password> 에서 설정한 패스워드를 입력하면 됨!