Docker(도커)란 무엇인가?
개요
- 맥OS에서는 오라클DB를 설치할 수가 없다. 대안책으로 도커에 오라클DB 서버를 올리는 방법이 있다.
- 어느 정도 서버를 다루고 서비스를 배포해 본 다음에 쓰는 것이므로 자세한 내용은 추후에 정리하고 사용하는 이유와 원리에 대해서 간단히 정리해보려 한다.
Docker, 컨테이너 기반 오픈소스 가상화 플랫폼
Docker는 2013년에 등장하여 컨테이너 세상을 만들어버렸다. Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다.
Docker만 있다면 어떤 프로그램으로도 환경에 구애받지 않고 컨테이너로 추상화하고 어디에서든 실행할 수 있다. 한마디로 Docker가 설치되어 있다면 Window, mac, Linux, 클라우드 등에서 똑같이 동작해낼 수 있다.
복잡해! 언제쓰면 되는건데?
예를 들자면 본인이 개발을 마무리 하고 서버에 올렸는데 작동을 제대로 안하는 것이다. 아마 그 이유는 본인의 컴퓨터는 Window이고, 서버는 Linux이기 때문이다. 이것을 'Environment disparity'라고 하는데 Docker는 다른 머신에서도 같은 환경을 구현할 수 있기 때문에 이를 해결해줄 수 있다.
어떻게?
Docker는 컨테이너를 위한 운영 체제이며 작동 방식은 코드를 실행하는 표준 방식을 제공한다. 가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게 컨테이너는 서버 운영 체제를 가상화한다. 도커는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는데 사용할 수 있는 간단한 명령을 제공한다.
예를 들면 Docker파일을 생성하여 구현하고 싶은 환경(python, Java등)을 설정하고 이 파일을 서버와 컴퓨터에 저장하면 Docker은 그 파일을 읽고 설정한 환경과 같은 Virtual container를 컴퓨터에 만든다. 그래서 컴퓨터에서 서버로 Docker파일과 함께 코드를 업로드하면 서버에서 문제없이 잘 작동하는 것이다.
컨테이너
Docker의 컨테이너들은 독립적인 특징을 갖고 있어서 한 개의 서버에 서로 다른 수많은 컨테이너를 가질 수 있다(한 개의 서버에 파이썬 컨테이너, 장고 컨테이너, 자바 컨테이너 등). 이는 서버를 확장할 때도 유용하게 쓰이는데, 만약 Java앱이 인기가 많아지면 Java컨테이너의 갯수만 늘리면 되는 편리함을 제공한다. 이처럼 Docker는 매번 새로운 서비스를 만들 때마다 새로운 서버를 구매하고 설정할 필요가 없게끔 만들어준다.
참고
Docker가 왜 좋은지 5분안에 설명해줌 - 노마드 코더(Youtube)
'⭐️ Management > Docker' 카테고리의 다른 글
macOS에 Docker(도커) 설치하기 (0) | 2021.08.01 |
---|