https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
https://tecoble.techcourse.co.kr/post/2021-08-14-docker/
https://veiled-telescope-427.notion.site/Docker-9d8c9f59f30c4b578be3d8c9abbd0fcd
1. Docker?
: 소프트웨어를 빠르게 배포, 관리할 수 있게 해주는 프로그램. 애플리케이션 컨테이너 런타임
컨테이너를 이용하여 툴을 가볍게 배포하고 이용할 수 있게 해준다.
또, OS를 가상화시켜 작동시키 때문에 어느곳에서도 잘 돌아간다! ! (컨테이너)
- 팀워크에서 엄청난 이점을 가지고 있다.
설치할 언어, 프레임 워크, 패키지 등 => 어느 컴퓨터에서든 동일한 환경에서 수행될 수 있다. 컨테이너가 각각 독립적으로 구동되기 때문.
쉽게 자신이 사용하던 환경을 공유하고 이동할 수 있다. - 성능이 뛰어나다.
가상의 OS라 하면 VM이 생각이 날 수 있다. 또, 그 외에 많은 컨테이너를 지원하는 기능이 있지만 왜 도커를 사용하는가? 라는 의문에서는 도커의 작동방법을 보게 된다면 해결이 될 것이다.
- VM : 각 가상 환경마다 독립된 커널 OS가 존재. 무겁고 느리다.
- 도커: 새롭게 커널 OS 생성 X. 기존의 커널 OS 자원을 계승하여 사용.
새로운 컨테이너를 만드는 것도 굉장히 빠른 방법으로 만들게 된다.
2. 컨테이너?
: 격리된 공간에서 프로세스가 동작하는 기술 (가상화 기술의 하나)
하나의 서버에서 여러 개의 컨테이너를 실행할 수도 있으며, 서로 영향을 주지 않고 독립적으로 실행이 된다.
실행 중인 컨테이너를 시작하거나 멈추며 쉽게 관리하는 것이 가능하다.
컨테이너라는 방식은 도커 전에도 리눅스 컨테이너 등 여러 가지가 있었다.
https://www.44bits.io/ko/keyword/linux-container
컨테이너는 크게 두 가지로 나누어진다.
이미지랑 그 외에도 등등 레이어 ~
피드백 받은 것.
개발자들이 환경이 너무 다르다. 어떻게 맞출 수 있을까? 이식성 왕 중요했던 과거
이젠 그냥 틀을 데리고 오자. 서로 다른 개발환경에서도 같이 쉽게 개발할 수 있다.