[클라우드컴퓨팅] 3-1. 가상화와 도커
1. 가상화와 Docker의 개요
- 가상화는 물리적 컴퓨터를 여러 개의 가상 컴퓨터로 나눔
- 하나의 장비를 여러 대의 PC처럼 운영할 수 있게 해줌
가상화
- 가상화의 개념
- 한 컴퓨터를 여러 대의 가상의 작은 컴퓨터로 나누는 기술 - 가상화의 장점
- 컴퓨터를 여러 대 사지 않아도 다양환 환경을 사용할 수 있음
- 한 작업이 문제가 생겨도 다른 작업에 영향 주지 않음
Docker의 특징 : 가상화
- 컴퓨팅 환경에서 가상화 기술의 한 형태
- 컴퓨터 내 독립적인 소규모 환경 컨테이너 구축
- 다양한 운영체제나 프로그램이 독립적으로 실행될 수 있는 공간 제공
- 한 대의 컴퓨터에서 다양한 운영체제를 동시에 사용하는 것과 유사
- Docker의 장점
- 보통 프로그램은 특정한 운영체제에서만 작동
- 프로그램과 필요한 환경을 하나의 가상 주방으로 만들어줌
- 본 주방에서도 가상주방을 실행할 수 있도록 해서 마치 Windows 컴퓨터와 Ubuntu 컴퓨터 두대처럼 사용 가능
2. 프로그램 개발과 Docker 사용
- Docker로 개발 환경을 표준화하여, 다양한 환경에서 프로그램 실행 가능
- 크로스 플랫폼 호환성을 얻고, 개발 및 배포 효율적
개발 환경과 실행 환경의 차이
- 개발자가 프로그램을 만들고 테스트하는 환경은 보통 Windows 같은 운영체제 사용
- 실제로 프로그램이 실행되는 AWS는 Ubuntu 같은 리눅스 환경을 사용하는 경우가 많음
- 두 환경의 차이점
- 운영체제의 차이
- 개발 환경인 Windows와 실행하는 Ubuntu는 프로그램이 동작하는 방식이 다름 - 환경의 실제 예
- 개발 환경 Windows에서 잘 작동하는 프로그램이 실행 환경 Ubuntu에서는 오류 가능 - 파일 경로의 차이
- 개발환경 Windows는 파일 경로를 C:\폴더\파일처럼 사용
- 실행 환경 Ubuntu는 /폴더/파일처럼 다르게 사용 - 필요한 라이브러리와 설정
- 프로그램이 실행되려면 특정한 소프트웨어나 설정이 필요할 수 있음
- 개발 환경과 실행 환경이 다르면 설정이 맞지 않아 프로그램이 정상적으로 실행되지 않을 수 있음
- 운영체제의 차이
Docker 컨테이너를 이용한 환경 차이 극복
- 개발환경과 실행 환경을 일치시킴으로써 효율성을 극대화하는 도구
- 실행에 필요한 운영체제, 파일 경로, 소프트웨어 설정 등을 하나의 컨테이너(Container)로 구성
- Windows에서 개발된 프로그램도 Ubuntu 환경에서 원활하게 실행될 수 있도록 설계됨
3. Windows 환경에서 Docker 설치
Windows에서 가상화 가능 확인
- 작업 관리자 열기
- Ctrl + Alt + Del 동시에 누른 후 '작업 관리자' 선택
- 작업표시줄 우클릭 후 '작업 관리자' 클릭 - 성능 탭 클릭 후 가상화가 '사용'으로 되어 있는지 확인
가상화가 가능하지 않을때 Bios 설정
- 컴퓨터 시스템 종료
- 컴퓨터 전원 켜기
- 시작되는 동안 특정 키를 반복적으로 눌러 BIOS설정으로 들어감
- BIOS Setup의 가상화 기술 선택으로 이동한 후 엔터키로 사용 설정
- 변경 사항을 저장한 후 재부팅
운영 체제 확인
- Windows 키 + Pause Break 키 클릭
- 윈도우 운영 체제 확인
- Windows Home 에디션의 경우 Hyper-V 설치해야함
Hyper-V 설치
- Hyper-V기능
- 윈도우에서 리눅스와 같은 가상 운영체제를 실행할 수 있는 기능 - Home 에디션
- Windows Home 에디션에는 Hyper-V가 기본으로 제공되지 않음
- Hyper-V를 설치 해야함
- Hyper-V는 해당 블로그를 참고하여 수행함 https://makeutil.tistory.com/188 - 다른 에디션
- Windows Pro 및 Windows Enterprise 에디션에는 Hyper-V가 기본 설치되어 있어 추가 설치가 필요 없음
Hyper-V 설정
- Windows 기능 켜기/끄기 검색 후 클릭
- 모든 Hyper-V 항목이 체크되었는지 확인
- 체크되지 않은 기능 있으면 모두 선택 후 확인 누르고 재부팅
WSL 커널 업데이트
- https://learn.microsoft.com/ko-kr/windows/wsl/install-manual 페이지 접속
- 화면 중간에 링크를 클릭해 파일 다운로드
- 다운로드 받은 파일을 기본 옵션으로 설치
- 컴퓨터 재시작
Docker 설치
- https://docs.docker.com/desktop/setup/install/windows-install/ 페이지 접속
- 'Docker Desktop for Windows' 클릭하여 설치
- 다운로드 받은 파일을 더블 클릭 후 설치
Docker 실행
- 바탕화면에서 Docker Desktop 아이콘 더블 클릭
- 이메일이랑 설문은 스킵
- 좌측 하단의 Engine running 메시지를 확인
- 메시지가 없으면 10분 정도 기다리기
- 10분 후에도 나오지 않으면 설치 실패한 것 - 윈도우즈에서 명령 프롬포트 검색
- 명령 프롬프트 -> 관리자 권한으로 실행 클릭 - docker -v 입력해서 Docker 버전이 출력되는지 확인
4. Docker 가상화 특징
Docker 가상화를 이용한 Ubuntu 실행
- 하나의 물리적 컴퓨터를 여러 가상의 컴퓨터처럼 사용할 수 있게 만드는 기술
- 가상화 기술을 기반으로 작동하지만, 기존의 가상화 방식과는 차별화된 컨테이너 기반 가상화를 제공
- 훨씬 더 가볍고 빠르게 환경을 만들고 배포할 수 있음
가상화 기술의 진화 : Docker와 기존 가상화의 차이점
- 기존 가상화 (Virtual Machine)
- 새로운 운영체제 설치 필요 : 각 가상 컴퓨터마다 운영체제를 새로 설치해야 함
- 무겁고 자원을 많이 사용 : 운영체제 전체를 설치하므로 CPU 메모리, 디스크 공간 많이 필요
- 독립적이지만 비효율적 : 각 가상 컴퓨터가 별도의 운영체제를 가지고 있어 비효율적 - Docker (컨테이너 기반 가상화)
- 운영체제를 공유 : 물리적 서버에 설치된 운영체제를 그대로 활용하고 필요한 환경만 추가함
- 가볍고 자원을 적게 사용 : 필요한 최소한의 도구와 설정만 포함하므로 시스템 부하가 적음
- 효율적이고 빠른 실행 : 기존 운영체제 위에서 바로 실행되므로 시작 속도가 매우 빠름
5. Docker 가상환경 Ubuntu 실행
Docker 가상환경 Ubuntu 실행
- 윈도우즈에서 명령 프롬포트 검색
- 명령 프롬프트 -> 관리자 권한으로 실행 클릭 - 시스템 설계도를 가져오기
docker pull ubuntu - 가지고 있는 설계도 리스트 확인
docker images
- 다운로드한 Docker 이미지 목록을 확인할 수 있음
- 이를 통해 현재 시스템에 어떤 설계도가 준비되어 있는지 확인 가능
- 이미지 목록을 확인하면 사용하지 않는 이미지를 정리하거나, 새로운 이미지를 추가할 수 있음 - 다운받은 설계도로 작업 시작함
docker run -it ubuntu
- Ubuntu 명령어로 작업 가능
- -it 옵션 : 대화형 모드로 진입, 직접 작업 가능함 - 가상의 Ubuntu에서 빠져나가 Windows로 돌아가기
- Ctrl키와 P 키를 동시에 누름
- 이어서 Ctrl키와 Q키를 동시에 누름
docker ps
- 실행 중인 컨테이너 조회
- 각 컨테이너는 고유 ID를 가지고 있으며, 필요하면 이 ID를 통해 제어 가능
- '-a' 옵션 : 모든 컨테이너 조회
docker attach
docker attach [컨테이너 ID]
- 가상 컨테이너로 돌아감
- 실행중인 가상 컨테이너로 돌아감
docker stop
docker stop [컨테이너 ID]
- 실행중인 컨테이너 종료
docker rm
docker rm [컨테이너 ID]
- 사용이 끝난 컨테이너 삭제
- 더 이상 사용하지 않는 컨테이너를 삭제하여 공간을 확보