Docker란?
컨테이너 기반의 오픈소스 가상화 플랫폼으로, 가장 대표적인 컨테이너 기술이다.
Docker가 나오게 된 배경?
기존의 방식으로 나만의 앱을 만든다고 가정하면, 예를 들어 내컴퓨터의 운영체제에 안드로이드 앱, 웹서버, 데이터베이스가 깔리게된다. 하지만 이렇게 되면, 오류가 많아지고 신경써야할 게 많아진다. 그래서, 운영체제별로 각각의 안드로이드 앱, 웹 서버, 데이터베이스를 제공하면 어떨까? 라는 생각을 하게 되고 이것이 가상머신이다. 하나의 컴퓨터에 가상화를 통해 운영체제 각각마다 웹서버, 데이터베이스를 설치하는 방법을 생각하게 되는 것이다.
하지만, 가상머신을 사용한다면, 운영체제위에 운영체제가 있다보니 실행속도도 너무느려지게 된다. 한대의 컴퓨터 안에서 각각의 웹서버든 데이터베이스서버든 실행시킬수 있을까? 라는 생각에서 나온 것이 컨테이너이다. 여기서 그냥 실행되는 것이 아니고 각각의 웹서버든 데이터베이스서버든 격리된 환경에서 실행된다. 각각의 컨테이너에는 운영체제 전체가 설치되는 것이 아니고, 운영체제 레벨에서 CPU, RAM, Disk, Network등의 자원을 격리하여 컨테이너에 할당하기 때문에 앱을 실행하는데 필요한 라이브러리와 실행파일들만 포함되어 있다. 이렇게 앱이 실행될 수 있다면? 운영체제가 하나라 속도도 느려지지 않고 용량을 아끼며, 무엇인가를 설치할 필요도 없게 된다.
'Dev > Docker' 카테고리의 다른 글
[Docker] Dockerfile의 COPY와 리눅스 cp의 차이 (0) | 2023.05.09 |
---|---|
[Docker] Jasypt 이용해 암호화시 docker-compose.yml에 .env파일로 변수관리 하기 (0) | 2022.06.01 |
[Docker] Docker 바인드마운트 사용해 파일 저장하기(vs 볼륨마운트) (0) | 2022.04.18 |
[Docker] Docker TimeZone설정(UTC -> KTC) (0) | 2022.03.24 |