☆ Docker란?
→ Docker란 'Environment disparity' 직역하자면, '환경의 차이'라는 문제가 발생했을 때, 이를 해결할 수 있는 툴이다.
→ 그러면 Environment disparity란 무엇일까? 예시로 확인해보자.
내가 만든 코드를 서버에 올리기만 하면 되는 상황이다. 분명 내 PC에서는 잘 작동을 하였으나, 서버에 업로드 직후 작동을 제대로 하지 않았다. 이 이유는 내 컴퓨터가 Windows고, 서버는 Linux 기반이기 때문이다. 이것이 Environment disparity라 할 수 있으며, 이런 문제점을 Docker가 해결해줄 수 있다.
→ Docker를 통해 다른 기기에서도 같은 환경을 구현하는 게 가능하다.
☆ 간단한 Docker 사용 순서
➀ Docker를 윈도우에 설치하고, 서버에도 설치한다.
➁ docker 파일을 생성한다. 여기서 개발자가 구현하고 싶은 환경을 설정하면 된다.
ex) 우분투, 파이썬, Git 등등
➂ 이 파일을 서버와 개발자의 컴퓨터 양쪽에 준 뒤, Docker는 그 파일을 읽어 필요한 것을 다운로드 받으며, 해당 설정 환경과 같은 버츄얼 컨테이너를 컴퓨터에 생성한다. 또한 Docker는 서버에서 필요한 것들 역시 다운로드받는다.
➃ 따라서 개발자가 컴퓨터에서 서버로 docker 파일과 함께 코드를 업로드 하면 잘 작동한다.
☆ Docker의 이해
→ Docker는 각 컨테이너들이 분리되어있다고 있으며 독립적이라 가정한다.
→ 이러한 특징 덕분에 한 개의 서버에 각기 다른 많은 수의 컨테이너를 가질 수 있다.
ex) 파이썬 컨테이너, java 컨테이너 등등
만약 내가 개발한 java 앱이 인기가 많으면, java 컨테이너의 갯수를 늘리는 것으로 해결된다. 다시 트래픽이 줄어들 경우, 해당 컨테이너들의 수를 줄일 수 있다.
→ 이러한 Docker의 성능 덕분에 매번 새로운 서비스를 만들 때마다 새로운 서버를 사고, 설정할 필요가 없는 것이다. 그저 원하는 수만큼 컨테이너를 생성하고 복제하면 된다.
→ 개발자는 원할 때마다 Docker를 통해 새로운 환경을 생성할 수 있다.
☆ 개발자들의 사랑을 받는 Docker
→ 하나의 같은 서버에서 각기 다른 환경의 컨테이너를 설정할 수 있다.
→ 이 컨테이너들은 각기 분리, 독립되어 있다. 그렇기에 무슨 환경이든 모듈식으로 관리가 가능하다.
● 얄코님의 쉽게 이해하는 도커 개념
https://www.youtube.com/watch?v=tPjpcsgxgWc
'프로그래밍 > Norms' 카테고리의 다른 글
2021년 7월 29일 - Baekjoon & Solved (0) | 2021.07.29 |
---|
댓글