애플리케이션을 개발/배포/실행하기 위한 플랫폼.
컨테이너를 사용하여 애플리케이션 및 지원 구성 요소를 개발
리눅스 자체 기능을 사용하여 프로세스 단위의 격리 환경을 제공
배포 용량과 시간을 단축하고, 성능 손실을 최소화 시킴.
개념
-- 가상화란 물리적인 공간 내에서 논리적인 공간으로 해당 공간을 분리하여 사용하는 것을 의미. 하나의 운영체제에 종속되어 여러 애플리케이션을 실행하던 방식이 아닌 각각의 애플리케이션이 독립된 공간을 가지고 다른 운영체제 위에서 실행될 수 있게 논리적인 개념으로 공간을 나누었다.
개념
과거에 사용한 가상화 방법.
물리적으로 공간이 아닌 논리적인 공간으로 분리하여 사용하는 걸 가상화라고 했는데, 이때 가상화 기술은 주로 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성하여 사용하는 방식. 즉, 하이퍼 바이저는 가상화 기술을 위해 여러개의 운영체제를 하나의 호스트에서 생성 및 사용하는 기술이다.
개념
도커는 리눅스 컨테이너에 여러 기능을 추가함으로서 애플리케이션을 컨테이너로 활용할 수 있께 해준다. 이때 가상화 공간을 생성하기 위해 리눅스 자체 기능인 루트 디렉토리 변경, 네임스페이스, 자원 할당 제어등을 사용한다.
리눅스에는 루트 디렉토리를 변경하는 명령어 chroot가 존재
-> 단어 그대로 루트 디렉토리 변경(프로세스가 실행되는 루트를 변경
-> 루트 디렉토리를 변경하면 해당 디렉토리를 지나지 않아도 되어 결론적으로 다른 디렉토리와 격리된 공간으로 분리, 독립적인 환경에서 의존성을 걱정하지 않고 원하는 방식으로 애플리케이션을 구축하고 실행할 수 있음.
프로세스를 실행할 때 시스템의 리소스를 분리하여 실행할 수 있도록 도와주는 기능. 특정 프로세스에 대해 시스템 리소스를 논리적으로 격리하는 기능.
리눅스의 프로세스 그룹에 대해 자원 할당 할 수 있는 명령어 cgroup이 존재한다. 하드웨어의 자원을 그룹별로 관리할 수 있게 해주는 커널 모듈이다.
각 컨테이너에 대한 파일 시스템 격리, 컨테이너 독립적인 환경을 가지게 해주고, 독립적으로 사용할 수 있는 파일시스템과 환경을 가지게 됨, 해당 컨테이너가 사용할 수 있는 하드웨어의 자원제한 각 컨테이너는 다른 컨테이너에 할당된 자원을 사용할 수 없기 때문에 별도의 운영체제에서 실행되는 것과 비슷해짐.
->>애플리케이션 개발과 배포가 변해진다.
5.
6. 재부팅 후 서비스 계약 변경 동의 창 팝업
7. I accept the terms 체크 후 Accept 버튼클리
7-temp 여기서 잠시 문제가 발생할 수 있다.
window11버전의 경우 window기능 설정중에 하이퍼바이저가 꺼져있다.
이걸 check하고 재부팅을 시작한다.
8.WSL2 installation is imcomplete창이 뜨는 중앙의 링크로 들어가서 리눅스 커널 업데이트 패키지 다운바독 Next로 설치.
9.Docker에서 skip을 누르고 cmd에서 docker -v를 통해 버전을 확인 버전이 출력되면 정상 설치가 완료되었다.