Linux 컨테이너를 매우 가벼운 모듈식 가상 머신처럼 다룰 수 있게 해주는 컨테이너화 기술이며, 컨테이너의 구축, 배포, 복사, 다른환경으로 이동시키는 기능이 있습니다. 어플을 클라우드에 최적화하도록 지원합니다.
1차조사 Linux컨테이너란?동일한 운영 체제 커널을 공유하고 시스템의 나머지 부분으로부터 애플리케이션 프로세스를 격리합니다. Linux 컨테이너는 운영 체제에서 기본으로 실행되고 모든 컨테이너 전체에서 운영 체제를 공유하므로 애플리케이션과 서비스를 가볍게 유지할 수 있으며 빠른 속도로 동시에 실행할 수 있습니다. 컨테이너를 사용하면 개발자들의 개발 환경이 각각 다른 상황에서 서버 환경을 재 구축하지 않더라도 어플을 작동시킬수 있습니다. 컨테이너 플랫폼(온프레미스,클라우드,하이브리드) 중 어떤것을 선택해도 컨테이너는 사용자의 요구사항을 충족시킬 수 있습니다.
Linux 컨테이너 이미지는 이식성과 버전 관리 기능을 제공하여 개발자의 노트북에서 수행하는 작업을 프로덕션에서도 수행할 수 있게 합니다.
도커 개념 재정리
한줄정리 : 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
컨테이너란?
공유하기 쉬운 방식으로 어플리케이션과(ex 어플이 독립형인가 기업형인가) 종속 항목을(ex 언어 / 종속성 / 데이터베이스 / 앱서버) 패키징할 수 있는 표준 구성요소이며 휴대가능. 격리. 경량화. 확장성이라는 장점이 있다. 다른 co-worker는 최소한의 작업으로 어플을 실행할 수 있다.
이러한 컨테이너를 가능하게 하는 소프트웨어 플랫폼이 Docker 이다.
내 운영체제에 도커를 설치하고 내 어플과 종속성을 컨테이너화 한다면, co-worker는 docker명령어를 통해 컨테이너를 실행하고 2번의 장점을 통해 잠재적인 프로세스 실수나 수동작업을 생략할 수 있다.
가상머신과의 차이점
Docker는 게스트 운영체제(Host OS)가 없어서 로드할 필요가 없어 컨테이너 시작시간이 빠르며, 컨테이너를 가상머신보다 더 작고 빠르게 만들며 리소스를 적게 사용한다. '제 컴에서는 되는데요?'를 해결하는 것은 동일하나 솔루션의 방식이 다른 것.
도커의 이용방법
운영체제에 도커를 설치하고 도커이미지를 빌드방법 설명서-dockerFile 을 통해 도커이미지를 빌드. 도커 이미지란 컨테이너 생성/실행 템플릿이다. (클래스와 실행객체의 관계와 같다) 도커이미지로 도커 컨테이너를 실행한다.
WSL2(Windows Subsystem For Linux) : Windows10 운영체제에서 리눅스 운영체제의 쉘,시스템을 사용할 수 있도록 지원해주는 기능. Hyper-V(하이퍼바이저)에서 가상머신처럼 부팅되며 기존 가상머신처럼 100% 리눅스 커널과 호환. 가상머신처럼 메모리 할당 / 가상 IP부여(wsl2).
쿠버네티스 : 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼으로 구글이 만들어서 현재 수많은 기업에서 사용중
[과제]
Docker를 설치. (2) 설치된 Docker를 이용해서 MySQL DBMS를 설치
이미지 다운은 docker desktop이 편했고
컨테이너 생성은 intelli J 에서 이미지>오른쪽버튼>container 생성이 가장 편했다
docker desktop을 통해 원하는 컨테이너의 terminal을 열면 앞에 #이 붙으면서 바로 컨테이너 이용이 가능했다. 굳이 cmd명령어로 컨테이너에 접근하는 수고가 없어졌다.
자바에서 첫번째 글자가 대문자로 시작하면 그것은 클래스이다. 예를들어 System.out.println 에서는 System이 클래스, out이 필드, println이 메소드이다. System이라는 클래스(객체)가 가지고 있는 필드 out, out이 가지고 있는 println 메소드를 쓴다는 뜻