예를 들어
계약건마다 현지로 다니면서 일을하는 사람 A가 있다고 생각하자.
매번 많고 복잡한 장비들을 갖고 다니면서 설치하는데 신물이 났다.
Docker가 이 일들을 간편하게 해결해 줄 수 있다.
이 복잡한 장비들이 설치된 그 상태로, 사본들로 복제한다.
하나하나 할 수도 있고, 장비들이 연결되고 조립된 모습까지 저장할 수 있다.
이 사본들을 다른 곳에 가져가서 그대로 설치할 수 있다!
허브라는 곳에 저장해서 클라우드처럼 어디서나 내려받아 쉽게 사용할 수 있게 한다.
근데 일을 혼자하진 않잖아요?
같이 다른 작업을 하는 B씨도 작업실을 같이 쓴다. 물건도 겹치고, 전선도 꼬이는데
분리된 작업 공간을 만들면 해결할 수 있다!
컨테이너로 분리되고 필요에따라 연결된 독립된 업무환경을 구축할 수있다.
서버를 돌리기 위한 환경을 구축하려면
언어, 웹서버, 데이터베이스, 자동배포 툴 등등 여러가지를 버전 신경써서 다운받고
잘 돌아가게끔 이것저것 설정해줘야한다.
근데 서버를 운영하다보면
더 성능 좋은 서버로 옮겨가거나 서버를 더 늘린다거나 하면 그곳들에도 똑같이 추가를 해야한다.
또, 같은 서버에 여러 서비스를 돌리는 경우
각각이 다른 실행환경에서 동작해야할 때 골치아프다.
자바 7으로 기존 서비스를 돌리고있었는데
새로운 서비스가 자바8인 경우!
각 요소들이 설치된 모습을 이미지라는 형태에 박제해서 저장한다.
- 각 제품마다 공식적으로 제공되는 이미지도 있고,
- 우리가 직접 만들어 낼 수 있다.
Docker이미지들은 Docker hub이라는 곳에 업로드 되어 공유되고, 다운받아질 수 있다.
그리고, 이미지로 저장된 항목들이 함께 연결되어서 동작하도록 설정된 상태를 명령어 텍스트, 문서형태로
저장할 수 있다. 마치 설치하는 과정을 어디서나 컴퓨터가 재현할 수 있게 녹화하듯이 저장한다.
=> 이 문서만 잘 보관해두면 이 요소들이 언제 어디서든
미리 지정된, 서비스에 필요한 설정대로 도커헙으로부터 받아져서 설치될 수 있다.
도커는 이것들을 직접 설치하지 않는다.
컨테이너라고 불리는 독립된 가상 공간을 만들어 보관한다.
그래서 자바 7, 자바 8을 돌리는 서비스도들도 각각의 컨테이너 안에서 서로 방해하지 않고 돌아갈 수 있다!
가상컴퓨팅과 차이점이 있다.
- 가상컴퓨팅은 한 물리적 컴퓨터 안에 각각 OS를 돌리는 컴퓨터들이 물리적 자원을 분할해서 사용하기 때문에
성능에 한계가 생기게 된다. - Docker는 OS까지 내려가는 것이 아니라 실행 환경만 독립적으로 사용하기 때문에 컴퓨터에 직접 요소들을 설치한 것과
별 차이없는 성능을 낼 수 있고, 가상 컴퓨팅보다 훨씬 가볍고 빠르게 각각을 설치하고 켜고 끄고 연동할 수 있다.
서버에 무슨 일이 있어서 고쳐야하거나 일부를 업그레이드해야할때는 일일이 요소들을 정지하고
지우거나 새로 깔거나 할 필요 없이 이 컨테이너들을 아예 갈아껴서 운영하면 된다.
컨테이너가 없는 방식과 비교해서 말도 안되게 쉬워졌다.
도커 없이 IT 서비스를 이용하는 것은 상상도 할 수 없게 되었다.
'IT 지식' 카테고리의 다른 글
[Docker] Docker-Compose 매커니즘 이해하기 (0) | 2022.12.02 |
---|---|
[Docker] docker-compose 설치하기 (0) | 2022.12.01 |
[Docker] Docker로 MySQL설치하고 접속하기 (0) | 2022.12.01 |
MVC 웹 프레임워크란? (1) | 2022.12.01 |
데이터란? (0) | 2021.10.25 |