docker란 무엇일까? 사실 나도 계속 쓰고 있지만 일종의 OS 가상화 머신이 아닌가? 라고 생각하고 있었다. 컨테이너 각각에 들어가면 또다른 리눅스가 있었기 때문이다. 최근에 알고 있다는 것에 강한 의문이 들었기에 내가 정말 잘 알고 있나? 라는 의심을 품었고, docker 역시 내가 잘 알고 있는 것이 아니었다.
일단 컨테이너를 알아보자. 컨테이너란 OS 환경 위에서 소프트웨어 실행을 위해 마련되는 독립적이고 실행가능한 소프트웨어 패키지이다. 기존 가상화 머신은 기존 OS위에 또다른 OS를 에뮬레이터로 생성하였기 때문에 매우 느리고 무거웠으나, 컨테이너는 개별 소프트웨어의 실행을 위해 별도의 파일 시스템, 네트워크 인터페이스, 프로세스 공간등을 가질 뿐 OS에서 같은 커널환경을 받는다.그렇기에 가상화 머신보다 가볍게 소프트웨어를 실행할 수 있다.
동시에 독립적인 공간을 가지기 때문에 다른 컨테이너는 다른 컨테이너에 영향을 받지 않는다. docker-compose 써보면 완전 독립적인건은 아니지 않음? 이라고 물을 수 있으나 docker-compose는 컨테이너 사이를 엮어 연관성 있게 실행해주는 것뿐 컨테이너 자체는 항상 독립적이다. 생각해보면 docker-compose는 컨테이너 간의 순서들을 엮고 공용 볼륨을 어떻게 공유해서 쓸지 지정해줄 뿐 다른 컨테이너 내부에 간섭할 수는 없다는 걸 생각해보면 이해가 갈 것이다.
서론이 길었는데 docker는 이러한 컨테이너들을 사용할 수 있게 해주는 플랫폼 소프트웨어이다. 빠르고 간편하게 여러개의 소프트웨어를 실행할 수 있게 해주는 도구라니 사용하지 않을 수가 있을까? 나 역시 배포를 docker-compose로만 해보았기에 docker 없는 배포는 상상도 할 수 없다.
'일지' 카테고리의 다른 글
2023.05.31 (0) | 2023.05.31 |
---|---|
2023.05.30 (0) | 2023.05.30 |
5월 마지막 주 (1) | 2023.05.29 |
2023.05.26 (0) | 2023.05.26 |
2023.05.25 (0) | 2023.05.26 |