이게 도커라는 것은 푹 파고들었을 때, 굉장히 그... 엄마가 해준 그런 느낌이 있어요. 딱 봤을 때. 전 아빠지만.

peterTheAnteater·2024년 10월 7일
44

데브옵스

목록 보기
9/11
post-thumbnail

최근에 일이 바빠서 글을 좀 오랜만에 썼네요... 죄송합니다 ㅠㅠ

살려줘

글을 쓰게 된 동기

이번에 어쩌다 취준중인 새내기 개발자들과 도커 얘기를 하게 되었습니다.

대부분 이제 막 대학을 졸업 했던가 아니면 곧 졸업을 하는 친구들이었습니다.

그 친구들에게 도커를 설명하라고 했더니 생각보다 쉽게 답을 하지는 못하더군요.

0! = 1!

뭐 물론 프런트를 하는 친구들이 비교적으로 힘든거도 이해하고 데브옵스 관련된 친구들이 아닌이상 힘든거 이해하지만 도커를 사용을 하지만 설명이 힘들어하는걸 좀 신기하더라구요.

그래서 이참에 도커를 쉽게 설명하는 글을 쓰고 싶어서 함 써봅니다.

아주 기본적인 도커 설명입니다.

어쩌다 보니 글을 쓰는 내용이 더 쉬운거로 퇴보 하는 느낌이..

퇴보해

도커란?

구글에 도커를 찾아보시면 수많은 블로그글들과 공식문서들 등등이 나옵니다.

그리고 그 내용은 대충 이렇습니다.

  1. 컨테이너와 가상머신 차이 ~~ (하이퍼바이저, os 공유 등등...)
  2. 도커 컨테이너 기술
  3. 아키텍쳐
  4. 도커 명령어들
    그리고 조금 더 설명하면
  5. 도커 컴포즈

뭐 이런식인데 문제는 이런 글들을 봐봤자 도커를 사용해보기 어렵습니다.

왜냐? 대부분 진짜 어캐 사용하고 왜 저렇게 되어있는지는 잘 안쓰여있거든요..

도커 설치와 구동 방법을 말하는게 아닙니다. 예를 들어서 docker run이 뭐고 이거랑 docker compose up이랑 차이가 뭐고 또 Dockerfile이 있는데 이거랑 docker image, docker container차이가 뭔지. 좀 쉽게 설명 해주는걸 찾기 힘들었던거같습니다.

솔직히 초보분들 방금까지 제가 말한것들도

저게 뭔 소리람

소리가 나와도 정상이거든요.

그래서 요즘 흑백요리사가 유행이던데... 요리에 비유를 하면서 도커 설명을 함 해볼까 합니다!

요리로 비유한 도커

Dockerfile(도커 파일) -> 요리 레시피

  • 도커파일은 도커 이미지가 어떻게 만들어질지 적어둔 파일입니다. 요리로 비교 하자면 요리 레시피 입니다.

Docker Engine (도커 엔진) -> 요리사

  • 요리를 도커 엔진이 합니다.

Docker Volume (도커 볼륨) -> 저장고/냉장고

  • 요리를 하기 위해서는 재료가 필요합니다. 도커 볼륨은 그런 재료들을 소장하고 있습니다.

Docker Build (도커 빌드) -> 요리 행위

  • 도커 빌드는 도커파일을 기반으로 도커 이미지를 만드는 행위 입니다. 즉 요리를 만드는 행위입니다.

Docker Image (도커 이미지) -> 조리된 음식

  • 도커파일을 가지고 생성된 (도커 빌드) 이미지는 마치 레시피를 가지고 요리사가 조리한 음식이랑 같습니다. 즉 도커 이미지는 조리된 음식입니다.

Container (도커 컨테이너) -> 서빙된 음식

  • 컨테이너는 도커 이미지를 실행 시킨겁니다. 즉 조리된 음식이 서빙된겁니다.

Docker Run (도커 런) -> 서빙

  • 도커 이미지를 실행 시킬때 docker run을 해야됩니다. 즉 도커 런은 이미지를 서빙하는 행위해서 컨테이너가 되는 과정입니다.

Docker Hub (도커 허브) -> 메뉴판

  • 이 위 요리들을 결국 먹기 위해서는 누군가 음식을 시켜야 됩니다. 요리들을 모아서 메뉴를 고르기에는 메뉴판이 필요합니다. 도커 허브는 도커 이미지들을 모아서 골라서 사용할수 있게 해줍니다.

Docker Push (도커 푸시) -> 요리된 음식을 메뉴판에 추가

  • 요리를 팔고 싶으면 메뉴판에 추가도 해줘야 됩니다! 그 과정은 도커 푸시로 (도커 이미지를 도커 허브에 올리는..) 합니다.

Docker Pull (도커 풀) -> 메뉴 고르기

  • 그러면 손님들은 자기가 먹고 싶은 요리를 (사용하고 싶은 이미지) 골라서 주문합니다.

Docker Compose (도커 컴포즈) -> 음식점 매니저

  • 도커 컴포즈는 많은 메뉴들을 한번에 관리
    합니다. 이 일은 보통 음식점에서 매니저가 하는 일이랑 같습니다.

Docker Swarm (도커 스웜) -> 체인점 매니저

  • 도커 스웜은 컨테이너 관리, 복제, 로드 밸런싱 등등을 합니다. 여러 음식점들을 관리하는 사장님들이랑 비슷합니다.

이렇게 나열해서 적으니까 이해가 어렵죠? 그래서 아래 그림도 추가해봤습니다.

도커 음식점 아키텍쳐

당연히 음식점과 도커는 똑같지 않으니 1:1로 매칭이 잘 안되는 부분들도 존재 합니다. 좀 간단하고 쉽게 이해할수 있게 비교를 한겁니다.

기본적인 아키텍쳐:

결론

요즘 개발자들한테 도커는 사실상 필수 기술인거 같습니다. 물론 필수로 사용한다고 해도 완벽하게 알고 있다고 하긴 어렵죠.

물론 저도 완벽하게 알고있지 못하고 그러려고 노력합니다 매번 새로운점을 배우지만 그래도 쉽게 이해를 도우기 위해 한번 요리에 비교를 해보게 됐습니다.

모두 열심히 해서 미래 치킨집 사장이 되지 않길 바라겠습니다..! 그렇다고 아사하지는 마세요..

읽어주셔서 감사합니다!

profile
소프트웨어 개발과 밀당하는 개발자

1개의 댓글

comment-user-thumbnail
2024년 10월 21일

좋은 글 감사합니다!

답글 달기