ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도커강의 docker란 무엇인가?
    nomad's tools 2020. 10. 24. 17:53
    반응형

    요새 docker라는 말을 많이 들어보셨을 겁니다. docker란 무엇일까요?

    한마디로 말하면 "컨테이너 기반의 오픈소스 가상화 플랫폼"이라고 말할 수 있어요. 

    뭐 다짜고짜 뭐냐고 물어보는 경우 없는 면접관이 있다면 그냥 저렇게 정의하시고 시작하면 되지 않을까요?

     

    그럼 도커가 왜 digital nomad에 툴이 될까요?

     

    그건 가상화 이런 게 문제가 아니라요. 여러분이 어떤 서버 애플리케이션을 설치할 때 혹은 다른 곳에 설치할 때 굉장히 편리하고 쓸데없는 시간을 아껴 준다는 거에 있습니다.

     

     

    자 여러분이 어떤 일로서 고객이 원하는 서버 애플리케이션 WAS가 있거나 쇼핑몰 혹은 웹페이지를 구축했다고 가정해 보겠습니다. 

    분명 Install Manual를 같이 첨부해서 보내야 될 겁니다. 

    제가 예상하는 처음의 대화는 이렇습니다.

     

    A: 말씀하신 대로 설치했는데 에러 나요 그러니까 안돼요!!!

    B: 매뉴얼 확인해 보세요. 

    A: 뭐 라이브러리가 링크가 안 되는 거 같아요. 안돼요.. 

    B:.... 네 제가 가볼게요.  

     

     

    정말  제일 ㅆㅂ스럽죠. 사실 리눅스 같은 애도 워낙 배포 버전이 다양하니 충분히 그럴 수 있어요. 이럴 때 도커는 여러분의 바쁜 노매드 라이프를 좀 더 윤택하게 해 줄 수 있을 겁니다. 그러니 가급적 이 방법을 사용하시길 추천해 드려요. 

     

    좀 더 나아가서 여러분 혹시 플랫폼 노동자라고 들어보셨나요?

    우리가 유튜브를 써서 광고수익을 얻던 어필리에트 링크를 덕지덕지 붙이든 간에 우리는 결국 플랫폼의 틀은 벗어나지 못하는 거 일 수도 있어요. 종국엔 유튜브 스타 즉, 플랫폼 스타들은 자신이 플랫폼을 가지려고 할지도 몰라요.. (그전에 끝물을 장식할 책은 한 권은 쓰고 가면 좋겠네요.)

    이때 여러분이 이런 사소한 노하우를 알고 있다면 여러분의 아이디어를 이용해서 작게나마 독창적인 플랫폼을 구축할 수도 있을 겁니다. 물론 좀 더 좋은 방법 또한 있을 거고요. 

     

     

     

     

    그나저나 지금 커피프린스를 다시 보고 있는데요 고은찬은 왜 자신이 여자라고 얘기를 안 할까요..(지겨워 죽겠네요.)

     

    금지옥엽의 원영의가 생각이 나는데요.(저만그런가요?) 아무도 비슷하다는 생각은 안 하는 거 같더라고요. 

     

     

    다시 정리하면 여러분이 도커를 쓰면

    - 다양한 프로그램들을 설치하기 쉬워집니다. 

    - 혹시나 빌드 따위를 하는 프로그램이 있다면 더 이상 그런 과정은 하지 않아도 되니 여러분의 중요한 시간이 지켜질 겁니다.

    - 그러니 도커의 빌드 방식 배포 방식 그 외에는 가급적 피하세요. 

     

     

    정말 쓰잘 떼기 없는 이야기지만 그래도 뭔가.. 원리를 알아야 사용이 좀 더 수월한 독자를 위해서 도커의 기본적인 내용을 말씀드릴게요.

     

     

     

    Docker Layer

    그림을 보시면 저기 APP ABC 가 하나의 Wordpross라고 생각해 볼게요 음.. 아님 웹서버라고 치죠 

    인프라스트럭쳐는 깡통이고요 (그 팬 돌아가고 회로판 잔뜩 있는 거 있잖아요.) 아 피시라고 하죠!!

     

    이제 그위에 윈도가 깔렸어요 

    그리고 도커 엔진이 깔립니다. 

    그위에 여러분이 열망하는 애플리케이션 웹서버가 깔려요 

    그것도 많이 깔리네요 저 애플리케이션은 같은 OS kernel를 공유하게 됩니다. 그럼 이쯤 해서 뭔가 용어가 필요하겠네요. 

    이제 도커 위에 뜨는 웹서버를 그냥 컨테이너라고 합시다. 컨테이너는 격리된 프로세스 형태로 실행된다고 합니다. 

    컨테이너는 VM보다 적은 용량을 쓰구요(기본적으로 8MB 정도를 씁니다.)  

     

    아래는 위에 언급했던 VM(Virtual machine) 

    VM Layer

    다시 말하지만 그렇게 필요한 내용은 아닙니다. VM형태의 구조는 현재 클라우드 업체에서 많이 사용되고 있죠

    지금은 컨테이너와 VM형태를 같이 쓰고 있습니다. 초창기에는 위에 형태로 장사를 했습니다. 

    각각의 VM은 OS를 전체 카피하고요 필요한 바이너리 라이브리를 같이 복사하게 돼요. 그러니까 웹서버 하나 띄우는데 관련 OS 자원 전체를복사한다는 거죠.(10G 이상의 사이즈는 필요하죠..) 여기서 더 안 좋은 건.. 

    웹서버 띄우는데  VM Boot시간이 겁나 느리다는 겁니다.

     

    예전에 Ghost라는 프로그램 아시나요? docker가 어떤 application를 띄우는데 그냥 그 정도라고 생각하셔도 나쁘지 않습니다.. 좀 더 나은 설명을 듣고자 하시거나 시간이 좀 남으신다면 다른 아티클보다는 아래 공식 링크를 참조하시는 걸 추천합니다. 

    www.docker.com/resources/what-container

     

    What is a Container? | Docker

    A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. Learn more.

    www.docker.com

     

    근데 이런 컨테이너 방식의 플랫폼은 도커만 있는 건 아닙니다. 하지만 이제는 국제 표준처럼 되어 버렸죠. 

    또 하나 docker가 편리한 부분은 dockerhub가 있다는 거예요. 

    뭔가 github느낌 나지 않나요? 맞아요 그런 식으로 pull / push를 할 수 있어요. 

     

    소스는 아니지만 container(docker build, 빌드를 해서 만든)를 push도 하고 전 세계 다른 사용자의 container들을 받을 수도(pull) 있어요. 

    더 나아가 docker의 layer방식으로 인해서 github처럼 diff도 가능하고 변경된 부분만 push 하고 pull 할 수도 있어요. 

    써보시면 정말 편합니다. 

     

    결국 앞으로 설치하기 , install 하기 등의 긴긴 문서를 정독할 필요가 없어진 거죠.. 그리고 우리에겐 이게 중요한 건 아니잖아요. 

     

     

    자그럼 빨리 홈페이지를 만들어 봅시다. 

     

    그전에 전 국민이 다쓰는 윈도에 도커 엔진을 설치해 볼까요? 정말 쉬어요. 클릭만 하면 됩니다. 

     

     

     

     

    .

    .

    .

    .

    진짜 추천하지는 않는데 혹시 책을 처음부터 보신다면 아래 책 정도가 나쁘지 않을 거 같네요. 

    Docker로 PaaS 구성하기, 한빛미디어 완벽한 IT 인프라 구축을 위한 Docker, 정보문화사

     

     

    반응형

    댓글

Designed by Tistory.