docker

이직한 회사는 도커를 사용한다...

이직면접에서 귀가 닳도록 들었던 대표 질문 중 하나... 도커는 써보셨어요?

ㅎ........ 개인적으로만...이라고 흐지부지 대답했으며 (이마저도 설치한 뒤에 이미지 하나 올려보는 걸로 끝냈던 기억이)

이렇게... 조우하게 됐다

이래서 환경이 잘 구축되어있는 회사 잘 가는 게 중요한 것 같다... 미리 공부는 목에 칼이 들어와도 안하지만... 당장 닥치면... 안 할 수가 없기 때문...^^ (나만 모르면 세상에 그렇게 부끄러운 일이 또 없다...^^)

내가 아는 도커.. 뭔가 고래고?ㅋㅋ ㅋㅋ 컨테이너?고?ㅋㅋㅋㅋ 이미지??를 등록하고?ㅋㅋ 뭔가 원격 리눅스 서버..? 같은 거 아님?ㅎ AWS 비슷한 거 아님?

딱 이 정도 느낌으로 알고 있음

이미지를 아는 것조차 방통대 수업에서 레드햇이었나 그거 설치하라고그래서 이미지를 등록하라던 안냇말이 너무 인상깊어서 기억하고 있는듯..

여튼 아는 건 이 정도 밖에 없음 ㅎㅎ

그리하여 대충 공부하여 대충 적어보는... 도커란 무엇인가.

 

[ 아래부터는 제가 공부한 내용을 의식의 흐름으로 정리한 것으로, 많은 비약을 거친 상당히 정확하지 않은 정보이니 신뢰하지 마십시오 ]


도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.

 

그게뭔데... 뭐야.. 무서워...

왜 개발자들은 이렇게 말을 복잡하게 쓰는것일까...

난 개발자가 싫다..

 

하나 하나 분리해서 살펴보겠다..

컨테이너... 한국말로 '용기'이다.. brave아님 ㅎ

이런말하지마까..ㅠ

이것저것 담는 것을 컨테이너라고한다...

그럼 뭘 담느냐? 실행환경을...

프로그램이나 실행환경을 추상화(그러니까 대충 .zip으로 묶는다는 느낌적 느낌)한 걸 컨테이너라고한다..

 

그걸 왜 담는데요...

 

개발 경력자라면 이직한 회사나 프로젝트 새로 시작할 때 팀원들이랑 환경설정 셋팅 맞추는 데에 며칠씩 걸리고 골머리 썩고 남들 다 되는데 나만 안되고 세상이 억울하고 나 빼고 다 사기치고 있는 것 같은 경험을 해봤을 것이다..

너만 그런 게 아니다!

모든 개발자가 그랬다!

그래서... 도커는 그런 삽질을 방지하고자.. 만들어졌다..(고 생각함)

 

이 컨테이너는 AWS나 구글클라우드나.. 뭐 어디서나 다 돌릴 수 잇다고 한다.


컨테이너가 가상화 방식인데.. (위에 컨테이너 기반의 오픈소스 가상화 플랫폼..이라고되어잇지ㅎ)

가상화가 뭐냐면.. '격리된 공간에서 프로세스가 동작하는 기술'이란다.. 그니까 걍.. 뭔가 내 로컬 서버가 아닌 곳에서 프로그램을 돌리는 기술이다 이거지.. 회사 서버가 따로 있잖아요? 내 로컬 서버는 내 눈앞에있는 맥북 프로지만 회사 서버는 안 보이는 곳에 있잖아요? 보통 IDC에 있잖아요? 그거임..(아마도..잘모름 ㅎ)

 

컨테이너가 갑자기 가상화하겠소~!하고 뚝 떨어진 게 아님..

기존에도 가상화는 하고 있었다... 주로 OS를 가상화를 했다.. (VMware나 VirutalBox 같은 가상머신은 호스트OS위에 게스트OS 전체를 가상화해서 사용하는 방식... 맥에서 윈도우 돌리는 것도 같은 이치 ㅎ?)

 

그니까 옆집 철수네 집 위에다가 셋방을 새로 만드는 격..

 

개힘들었겠쥬..

 

그래서 아!!111셋방만들지마!!111해서 등장한 게 도커다..

OS좀 그만올려!!!!(흑흑흑) 힘들어!!!!

해서 도커 엔진 위에.. 컨테이너만 띡 올리는 것이다.. 이걸 OS로부터 프로세스를 격리했다고하나보다.


이로서 >>컨테이너 기반의 오픈소스 가상화 플랫폼<<라는 무시무시한 말을 대충 알아들을 수 있게 되지 않았는가

OS와 무관하게 독립적으로 굴러가는 프로세스들을 원격 어드메 서버라는 공짜 공간에서 굴리는 것이 도커다..

 


그럼 이제 이미지가 뭔지 알아보겠다...

이미지는 컨테이너 실행에 필요한 설정값 등을 포함하고 있는 것으로, 컨테이너는 이미지를 실행한 상태라고 볼 수 있다.... 고 한다.

 

씨디?같은 느낌 아닐까나~~~

데스크탑에 씨디를 넣으면 프로그램이 또로록 실행되잖아..

그런느낌아닐까나~~

 

도대체 왜 이미지..라는 햇갈리는 단어를 선택했는지 멱살잡고 묻고 싶다..

 


 

 

Reference

https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

 

'【 개발 이야기 】' 카테고리의 다른 글

터미널에서 사용하는 Alias(단축어) 설정 방법  (0) 2023.07.26
namespace란  (0) 2023.06.21
[json] json이란 무엇인가?  (0) 2023.05.22
[intelliJ]  (0) 2022.12.09
[intelliJ] module  (0) 2022.03.03