"컨테이너 기반의 오픈소스 가상화 플랫폼"
도커(docker)란? -> 이미지 (image) + 컨테이너 (Container) 의 개념이 합해진 것.
컨테이너(Container)란, 일반적으로 배에 싣는 네모난 금속 상자를 얘기한다. 컨테이너 안에는 여러가지의 물건이 들어갈 수 있다.
서버에서 이야기하는 컨테이너도 이와 비슷한데 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 할 수 있게 해준다.
백엔드, DB서버 등 어떤 프로그램도 컨테이너로 추상화 할 수 있고, 어디서든 실행 가능하다.
이미지(Image)란, 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다. 컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가 되거나 변하는 값은 컨테이너에 저장된다.
같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.
말그대로 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다. 이제 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성하면 된다.
한 서버에 여러개의 컨테이너를 실행할 수 있고, 수십,수백,수천대의 서버도 문제없다.
#출처:https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
Linux 컨테이너란?
-> 컨테이너 는 시스템의 나머지 부분과 격리된 하나 이상의 프로세스 세트이다. 이러한 프로세스를 실행하는데 필요한 모든 파일은 고유한 이미지에서 제공되므로, LInux 컨테이너는 개발 단계에서 테스트,프로덕션에 이르기까지 이식성과 일관성을 유지할 수 있다.
Ex) 애플리케이션을 개발하고 있다고 가정했을 때, 귀하는 노트북으로 작업하며 특정하게 설정된 환경을 사용하고 있다. 이때 다른 개발자들의 환경 설정은 다를 수 있을것이다. 귀하가 현재 개발중인 애플리케이션은 이 설정을 사용하고 특정 라이브러리, 종속성 및 파일에 의존하고 있으며, 동시에 귀하는 자제 설정과 지원 파일 세트에 준하여 표준화된 개발 및 프로덕션 환경을 갖추고 있다. 이때, 서버 환경을 재구축하는 부가적인 작업 없이 가능한 로컬에서 이러한 환경을
"에물레이션" 하려고 한다. 그렇다면 어떻게 이러한 환경 전체에서 애플리케이션이 작동하게 하고, 품질 검사를 통과하고, 큰 문제나 수정 없이 애플리케이션을 배포할 수 있을까?
#출처 : https://www.redhat.com/ko/topics/containers/whats-a-linux-container
# 나의 주관적인 도커 (docker) 설명과 장점
- 도커란, VMware 보다 가볍고 편한 플랫폼
- VMware는 항상 게스트OS를 설치해줘야하는데, Docker는 그럴 필요 없다.
- 정말 간편하다. Window, Linux 어떠한 운영체제에도 설치가능 (Linux 추천, Windows -> docker toolbox 사용)
그외 참고 사이트 : http://blog.drakejin.me/Docker-araboza-1/
https://www.docker.com/resources/what-container
# 설명 굿
https://avilos.codes/infra-management/virtualization-platform/docker/what-is-docker/
'infra > Docker' 카테고리의 다른 글
Dachore 개발 (1) | 2019.06.03 |
---|---|
Docker_Anchore( Open Source) (0) | 2019.05.15 |
Docker_CVE-2016-3697 (0) | 2019.05.15 |
Docker_CVE-2015-3627 (0) | 2019.05.14 |
Docker_CVE-2014-3499 (0) | 2019.05.13 |