🐳 도커란 무엇인가?
위키백과에 따르면 도커는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트라고 한다. 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공하는 도커는 독립적인 "컨테이너"가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상 머신을 시작하여 유지보수해야 하는 부담을 없애준다라고 한다.
왜 도커를 쓸까?
일반적으로 서버를 관리한다는 건 복잡하고 어려우며 개발자들의 섬세한 작업이 필요한 영역이라고 한다. 그렇기에 모두가 동일한 환경에서 서버를 관리하는 것은 상상하기 어려운 일 일수도 있다. 그럴때 우리가 만약 모두가 똑같은 환경에서 똑같이 관리를 할 수 있다면 어떨까? 도커는 개발 환경 요소들이 설치된 모습을 이미지로 저장한다고 한다. 저장한 이미지를 클라우드에 올리고, 이미지들이 서로 연결되서 동작하는 설정을 문서(Dockerfile)로 저장하며, 새 컴퓨터에 가서 복사한 문서의 내용대로 이미지를 다운받아 설치할 수도 있다고 한다. 그러면 우리는 이런식으로 동일한 환경을 제공받아 개발을 할 수 있게 되는 것이다. 가상 머신이랑 비슷하다고 볼 수 있지만 가상머신보다 훨씬 빠르고, 자원을 효율적으로 사용이 가능하다고 한다. 또한 도커에는 불필요한 추가적인 운영체제 설치가 필요 없습니다.
도커 허브에서는 npm 다운 받는 것처럼 다른 사람들이 올려놓은 이미지를 다운로드 하는 것이 가능하다고 한다. 또 한 컴퓨터에서 다른 환경의 여러 서비스를 실행해야 하는 경우, 컨테이너로 분리되어 있기 때문에 서로 독립되어 실행시키는 것 또한 가능하다고 한다.
도커의 이미지가 뭐야?
이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로, 상태값을 가지지 않고 변하지 않는다고 한다. 컨테이너는 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장되게 되는데 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다고 한다. 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다고 한다.
참조 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
초보를 위한 도커 안내서 - 도커란 무엇인가?
도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이
subicura.com
'📖 TIL > Tool' 카테고리의 다른 글
[🔄] husky가 무엇일까 (0) | 2022.02.26 |
---|---|
[🧹] ESLint와 Prettier에 대해 알아보자 (0) | 2022.02.20 |
[🔄️] Git과 GitHub (0) | 2022.02.13 |