킹의 개발일지

도커 입문(1) 본문

docker

도커 입문(1)

k1ng 2022. 7. 17. 23:21

토이 프로젝트를 거진 다 끝내고 배포하는 단계를 앞두고 있는데, 과거엔 AWS EC2에 nginx를 이용해서 배포해봤었다.

 

이번에는 공부를 목적으로 새로운 방법을 도입해보고 싶었고 요즘 핫(?) 한 도커를 공부해보고 싶었다.

 

docker 카테고리는 생활코딩에서 배운내용을 스스로 따라하는 과정을 담았다. 


어플리케이션을 개발하기 위해서는 운영체제에 많은 소프트웨어를 깔아야 한다. 웹서버, 데이터베이스 그리고 자바 언어를 사용한다면 JVM도 필요하다.

 

이런 설치작업들이 여간 까다로운 것이 아니다!

 

과거에 공부한다고 apt같은 패키징 관리 툴 없이 수동으로, 배포에 필요한 앱들을 설치해봤는데 여간 힘들일이 아니었다. 

 

웹서버를 만든 사람이 컴퓨터를 여러대 구매해서 적당한 운영체제를 깔고 그 위에 웹서버나 데이터 베이스를 올려서 우리에게 주고, 우리가 만든 앱이 네트워크로 통신해서 실행된다면, 실행되지 않을까 하는 걱정도 필요없을 것이다.

 

그러나 그렇게 하기위해서 여러대의 컴퓨터가 필요하다. 웹서버, 앱 그리고 데이터 베이스까지 총 세대의 컴퓨터가 필요할 것이다.

 

그렇다면 하나의 컴퓨터에서 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치하고 거기에 웹서버를 설치한다면 어떨까! 소프트웨어마다 컴퓨터를 별도로 장만하지 않아도 될것이다!

 

VM웨어나 버추얼 박스가 그런것들이다!

 

그러나 겨우 웹서버를 깔기위해 운영체제를 다시 깔아야 한다는것이 부담스럽다..

 

운영체제는 일단 용량자체가 크고 운영체제 위에 운영체제가 있다보니 느려지는 것이 당연하다..

 

그렇다면 한 대의 컴퓨터 안에서 각각의 앱을 실행시켜 볼 순 없을까? 버추얼 박스나 VM웨어와 달리 운영체제를 각각의 앱마다 깔자 않고 말이다!

컨테이너? 호스트?

각각의 앱은 격리된 환경에서 실행된다. 이때 운영체제가 설치된 컴퓨터를 호스트라고 부르고 호스트에서 실행되는 격리된 각각의 실행환경을 컨테이너라 부르자!

 

각각의 컨테이너 안에는 운영체제가 실려있는것이 아니라 앱을 실행하는데 필요한 라이브러리와 실행 파일만이 포함되어 있다.

 

이들은 이미 존재하는 운영체제를 공유한다! 무언갈 설치할 필요가 없고, 운영체제가 한 개 이므로 가상머신에서보다 빠르다.

 

리눅스 운영체제는 위에서 설명한 실행 방법이 내장되어있다! 이런 기술을 컨테이너라고 부른다. 그리고 이런 기술을 사용하는 소프트웨어중 잘나가는 녀석이 바로 도커이다!

 

이제부터 도커에 대해서 공부해보고자 한다!

 


https://opentutorials.org/course/4781

 

생활코딩 Docker 입구 수업 - 생활코딩

수업소개 vmware, virtualbox와 같은 가상머신처럼 독립된 실행환경을 제공하면서도, 성능의 저하가 훨씬 적은 도커에 대해서 알려드립니다.  수업대상 일하는 조직에서 도커를 쓰고 있는 분 개발환

opentutorials.org

 

'docker' 카테고리의 다른 글

도커 입문(6) - 명령어 실행  (0) 2022.07.18
도커 입문(5) - 네트워크  (0) 2022.07.18
도커 입문(4) - 컨테이너 run  (0) 2022.07.18
도커 입문(3) - 이미지 pull  (0) 2022.07.18
도커 입문(2) - 도커 설치  (0) 2022.07.18