도커, 컨테이너가 무엇일까요?
도커와 컨테이너의 정의에 대해 알아보고 쓰임새를 이해 할 수 있다.
안녕하세요.
오늘은 도커 하고 컨테이너에 대해서 한 번 알아보려고 합니다.
여러분들이 완전히 처음 이 두 개의 단어를 들었다는 전제로 한 번 설명을 해 볼 거예요.
그래서 짧은 영상이지만 도커 라든지 컨테이너에 대해서 아무것도 모르는 사람이 다른 사람한테도 설명할 수 있을 정도로 한 번, 한 번 전달을 한 번 해보도록 하겠습니다.
자,특히나 마지막에는 좀 실습을 좀 넣어 볼 예정이거든요.
실습 속도는 약간 빠를 수 있겠지만 대략적으로 제가 전달하려고 하는 실제의 그 컨테이너 개념과 도커 컨테이너에 대한 그 개념을 정확하게 증명하는 게 꼭 필요하거든요. 그래서 이론적인 내용들만 듣고 마무리하기 보다는 실습적인 내용들도 한 번 압축적으로 한 번 보고 좀 따라 도 한 번 해보면 더 이해도가 높아 지실 거라고 생각이 듭니다.
그럼 바로 시작해 보도록 하겠습니다.
우리에게 가장 가깝게 이해할 수 있는 게 뭡니까?
윈도우죠.그래서 윈도우의 기준으로 한 번 먼저 말씀을 드려 볼 거예요. 윈도우 OS는 다른 리눅스 OS 맥 OS 하고 마찬가지로 결국에는 이 컴퓨터 CPU 메모리 디스크 네트워크가 있는 그런 하드웨어 노트북 이나 서버 컴퓨터, 일반 컴퓨터들 이런 컴퓨터들의 하드웨어 자원들을 제어하고 또 어플리케이션 들을 관리하는 이 두 가지 역할을 하는 게 운영 체제입니다 윈도우도 마찬가지로 그렇게 할 수 있겠고요.
우리가 뭐 카카오톡, 크롬, 브라우저 여러 가지 프로그램들을 사용할 수가 있는데, 그런 어플리케이션 들도 관리할 수 있겠고요.
그리고 하드 웨어 자원도 관리하게 되죠. 그래서 결론적으로는 카카오톡 에게, 혹은 크롬 브라우저 에게 다양한 시스템 자원들을 제공하게 됩니다.
근데 그 시스템 자원 이라는 게 뭡니까?
가장 첫 번째로 예시를 될 수 있는 건 C 드라이브 예요.
그러니까 윈도우에서 제공할 수 있는 다양한 자원들이 있는데, 디스크라고 하는 하드웨어 자원을 C 드라이브에 맵핑을 시켜 가지고요.
C 드라이브 라는 시스템 자원을 카카오톡이나 크롬 브라우저 에게 제공해 주게 되죠.
근데 여기서 중요한 건 뭘까요?
모든 프로세스 들이 크롬이든 카카오든 여러 프로그램들이 결국에 C 드라이브를 공유합니다.
물론 이 안에서 폴더가 바뀔 수 있겠죠.
폴더 경로 라든지 이런 건 바껴 질 수 있습니다.
그런데 어쨌든 C 드라이브 라는 거는 하나예요.
하나고 그거를 다 공유하게 되는 거죠.
그렇죠?
그래서 웬만해서는 꼭 C 드라이브가 아니여도 네트워크 자원, 그리고 프로세스에 대한 어떤 관리하는 메커니즘, 그리고 C 드라이브, D드라이브 디스크를 관리하는 것들이 모든 자원들이 사실 모든 프로세스 들이 공유하게 됩니다.
하지만 충돌이 나지 않도록 운영 체제가 알아서 좀 관리를 해 줄 뿐이죠.
공유한다 는 게 굉장히 중요한 부분이에요.
이렇게 C 드라이브를 모든 프로세스들이 사실 공유하고 있다 이게 우리 운영 체제입니다. 특별하게 얘기하는 게 아니라 이게 운영 체제의 원래 현실입니다.
그런데 컨테이너 기술을 하게 되면 뭐가 좋은 거냐?
컨테이너는 C 드라이브를 각자 만의 C 드라이브로 쓸 수 있어요.
이게 직접적인 예시로 말씀을 드린 거고요.
사실은 C 드라이브 만을 뜻하는 건 아닙니다.
윈도우에서 제공하고 있는 다양한 시스템, 자원들 말씀드렸던 네트워크라는 이런 드라이브 라든지 다양한 시스템 자원들을 개별적으로 쓰게 하고 결론적으로 카카오톡 입장에서는 개별 윈도우 운영 체제에서 혼자 구동 한다라는 전제로 실행이 될 수가 있습니다.
실제로 그렇다는 건 아니에요.
그래서 가상화 기술이라고 말씀드릴 수 있죠.
원래는 이렇게 하려면 어떻게 될까요?
원래는 그냥 컴퓨터를 새로 사거나, 그래서 거기다 윈도우를 설치하고 카카오톡 만 설치하는 거죠.
아니면 가상 머신을 띄어서 거기다가 카카오톡 만 띄운 다는 거야.
가상 머신을 띄우고, 거기에 운영 체제의 윈도우를 하고, 그 다음에 크롬 브라우저를 떠야지 이 구조가 그림이 그려집니다.
근데 가상 머신을 사용하지도 않고 일반 물리 머신을 추가적으로 늘리지 않으면서도 실제로는 같은 머신이 마치 다른 머신 운영체제에서 구동하는 것처럼 자신만의 윈도우 시스템 자원을 사용할 수 있도록 가상화 하는 기술 독립화 하는 기술 이게 바로 컨테이너 기술입니다.
자, 우리가 실제로 이해하려 하는 건 윈도우 컨테이너는 아니었어요.
하지만 일단 윈도우가 우리 입장에서는 가장 이해하기 쉬운 거기 때문에 컨테이너 기술을 이해할 때 윈도우를 먼저 말씀드렸고요.
바로 이어서 우리가 진짜로 이해해야 되는 리눅스 컨테이너를 설명해 보도록 하겠습니다.
리눅스 컨테이너 리눅스도 마찬가지예요.
결국, 리눅스가 하는 일이 뭘까요?
두 가지 하드 웨어 자원을 관리하는 게 있습니다.
CPU 메모리 디스크 네트워크 이런 하드웨어 자원을 관리하는 부분과 어플리케이션 자원 관리를 같이 하게 돼요.
여기서 이 웹 서버 뭐 엔지엑스, 아파치 톰캣 도 있을 수 있겠고요.
안 그러면은 MySQL, PostgreSQL, MariaDB 다양한 데이터 베이스 프로그램들이 있죠.
보통 리눅스에서는 일반적인 카카오톡이나 크롬 브라우저 처럼 일반적인 유저 프로세스가 구동 되기 보다는 이런 서버 프로그램들이 인기 있게 많이 쓰이고 있고, 실제로 슈퍼 컴퓨터 백 퍼센트 리눅스를 사용하고 있고, 웬만한 서버들은 다 리눅스 입니다.
거의 기업에 들어가서 서버의 운용 체제를 본다면 대부분 리눅스 라고 보시면 좋을 것 같아요
근데 어쨌든 그런 프로그램들 리눅스는 시스템 자원을 제공해 주게 되죠?
그것 중에서 가장 대표적인 게 루트 파일 시스템입니다.
어, 루트 파일 시스템 뭐예요?
C 드라이브하고 똑같은 거라고 보시면 돼요.
다만 들어 있는 내용은 좀 다를 수 있겠지만 메인이 되는 드라이브 라고 보실 수 있겠습니다.
실제로 우리가 SSD 에 뭐 하드 디스크 같은 걸 썼을 때 연결되는 C드라이브 처럼 메인이 돼서 연결되는 걸 루트 파일 시스템이라고 말하게 돼요.
물론 C 드라이브가 있으면 D드라이브도 있고, E 드라이브도 있는 것처럼 드라이브가 여러 개 연결될 수 있어요.
그리고 리눅스도 루트 파일 시스템는 폴더 내부의 다른 폴더를 기준으로 해서 D 드라이브 처럼 E 드라이브 처럼 추가 드라이브를 당연히 사용할 수 있습니다.
하지만 메인이 되는 C드라이브 처럼 사용할 수 있는 게 루트 파일 시스템 이라고 할 수 있겠고요.
이거는 모든 프로세스 들이 공유해서 사용을 하게 됩니다.
다만 폴더가 당연히 경로가 나눠져서 보통 관리가 되고 일반적으로 리눅스가 이 자원에 대한 충돌 부분들을 기본적인 것들은 관리를 하기 때문에 당연히 충돌이 안 나게끔 유도해서 작업을 할 수는 있겠죠.
이렇게 해서 어찌됐든 루트 파일 시스템은 공유하게 되는데요.
여기 안에 되게 중요한 폴더가 있어요.
이게 무슨말이냐면 윈도우에 도 C 드라이브 안에 프로그램 루트 파일 시스템라는 폴더가 있고요.
윈도우즈 라는 폴더가 있잖아요.
그리고 거기 안에는 시스템 내부에서 사용하게 되는 뭐 레지스트 라든지 여러 가지 설정, 파일이나 라이브 파일, 중요한 파일도 많이 가지고 있습니다.
그리고 그런 것들을 공유하게 되죠.
리눅스 마찬가지예요. etc 라는 폴더가 있고요. lib라는 폴더가 있어요.
그런 것들을 공유하게 되죠.
한번 실습으로 살짝 볼까요.
우리가 지금 사용하게 되는 디스크에 대한 사이드를 봤을 때요.
이런 식으로 보는 것처럼 96퍼센트 쓰고 있는 걸 볼 수 있습니다.
마치 C 드라이브가 몇 퍼센트 썼는지를 보는 것과 비슷해요.
그리고 이 안에 있는 폴더에 여러 가지 폴더 들이 있는데요.
마치 프로그램 파일즈 윈도우즈.
폴더가 있듯이 여러 가지 폴더 들이 있죠.
그 중에서 뭐 lib 폴더 있는 거고요. etc폴더도 있는 겁니다.
이 안에 있는 요소들을 지금 다 공부할 수도 없겠지만 중요한 건 뭐냐면 etc라는 폴더는 하나의 역할을 가지고 있다는 거예요.
시스템 전반적으로 설정 같은 것들을 할 수 있는 설정 파일들이 모여 있다는 거죠.
lib 는 라이브러리 라고 해서 이제 우리가 코드를 짤 때 혼자서 1~100까지 다 짜지 않아요.
이제 선배 개발자분들이 미리 짜놓은 코드들이 있습니다.
그런 것들이 보통 오픈 소스로 제공이 되고요.
다양한 라이브러리, 프레임, 워크 이런 것들이 결국에 미리 짜놓은 코드 에요.
물론 그게 컴파일 되서 바이너리 코드 일 수도 있고, 소스 코드 일 수도 있겠지만 미리 짜놓은 코드라는 거죠.
그리고 그 미리 짜 놓 코드를 가져다 쓸 수 있고요.
가장 대표적으로 미리 짜놓은 가져다 쓰는 코드가 printf, scanf 에 뭐 console.log 이런 것들이 겠죠.
그래서 어찌됐든 우리가 직접 짜지 않고 미리 짜여진 코드들이 라이브러리 폴더에 들어 있습니다.
다 시스템 공유 폴더 라고 볼 수가 있겠죠.
그래서 그런 것들을 마찬가지로 이 웹 서버나 데이터 베이스에 공유하게 돼요.
그림은 이런 식으로 표현이 됩니다.
이게 그냥 일반적인 리눅스 환경이에요 아까 전에 윈도우도 똑같이 C 드라이브 공유하는 것처럼 여기도 루트파일 시스템도 똑같이 공유하게 됩니다.
이렇게 쓰는 게 뭐가 문제냐 문제 안 돼요.
이렇게 충분히 쓸 수 있습니다.
하지만 여기서 이 프로그램이 더 많아진다면 그리고 우리 시스템 자원이 더 높아지면서 다양한 복잡한 구조들이 여기 안에 자리 잡게 된다면, 이 루트 파일 시스템 안에 있는 공유하는 어떤 설정이나 라이브러리 때문에 충돌문제가 굉장히 심각해질 수 있습니다.
특히나 USR 폴더 같은 데는 우리가 패키지 관리자를 통해서 받을 수 있는 다양한 파일들이 서로 다르게 중첩 되면서 충돌 나거나 문제가 생길 수 있고요.
배포 판도 어쨌든 버전이 계속 바뀌기 때문에 그거에 따라서 패키지가 업그레이드 되는 거에 따라서 다른 프로그램 들에서 필요한 다른 패키지 들이 충돌 나고 문제 생기는 것들이 생기죠.
물론 지금 말씀드렸던 용어들을 모르는 것들도 계시겠지만 핵심은 그거예요.
마치 윈도우 에서도 C드라이브를 공유하는 것처럼 루트파일시스템을 공유하게 되고, 공통적인 설정, 라이브러리들이 충돌 날 여지가 있다라는 게 핵심 포인트인 거죠.
그 중에서도 우리가 소프트웨어를 다운받고 설치하게 되는 소프트 패키지 관리자 관련된 문제들도 굉장히 심각하게 많이 벌어집니다.
예를 들면은 시스템 내부에서는 파이썬2.7을 기본적으로 사용하고 있는데, 어떤 프로그램은 시스템 기본 설정으로 2.7이 필요하고 어디는 3이 필요하고 어디는 또 3.8이 필요하고 이런 여러 가지가 있을 수가 있어요.
근데 이런 것들을 어찌 어찌 해서 그 문제들을 피해 갈 수도 있겠지만, 이 시스템이 복잡해지고, 그리고 또 이 서버도 물리적인 서버도 많이 늘어난다면 걸 관리하는 게 굉장히 어려워지는 현상이 벌어지게 됩니다.
이 현장에서는 큰 문제가 돼요.
그냥 토이 프로젝트로 조그맣게 서버 구축하는 거 문제 안 생겨요.
근데 이럴 때는 굉장히 큰 문제가 생길 수가 있겠습니다.
대규모로 운영 할수록 더 심각한 문제가 발생하게 되죠.
그래서 사실 등장한게 컨테이너 기술입니다.
자, 컨테이너 기술을 쓰게 되면은 어떤 효과를 보게 되느냐.
자기만의 c드라이브를 갖는 것처럼 자기만의 루트 파일 시스템을 가질 수 있고, 자기만의 설정 폴더를 가질 수 있고, 자기만의 라이브러리 폴더를 개별로 가질 수 있다는 거예요.
그렇게 해서 사실은 루트 파일 시스템뿐만 아니라 리눅스 시스템 자원을 각자 만에 가져갈 수 있는 거죠.
그럼 리눅스 시스템 자원 라는 게 도대체 뭔가요?
여기 위에다가 적어놨는데.
자, 일단 한 번 보면은 루트 파일 시스템뿐만 아니라 네트워크 시스템 자원들, 예를 들어서 IP adress, 포트 번호 같은 것들, 특히나 외부에 노출되는 포트 번호 같은 경우에는 80 포트 같은 것들을 웹 서버가 가지고 있다면, 다른 웹 서버 프로그램 예를 들어서 에 HTTPD 같은 아파치 웹 서버 프로그램이 80포트을 동시에 가지려고 했을 때, 포트번호 80포트에 대한 시스템 자원이 겹쳐서 충돌 문제가 발생 할 수 있습니다.
하지만 컨테이너 기술을 쓰게 되면 80포트가 똑같은 게 백 개, 천 개, 만 개가 생겨도 괜찮아요.
왜 컨테이너 기술을 통해서 자기만의 시스템 자원을 독립화에서 가져가는 기술이기 때문입니다.
프로젝트를 관리하는 메커니즘이 든 여러 가지 시스템 자원들을 각자 만의 시스템 자원으로 사용하기 때문에 마치 가상 머신을 써서 새롭게 리눅스를 설치하고, 거기에 엔지 엑스 만 돌리는 것처럼 마치 가상 머신을 새롭게 할당 해서요. 혹은 AWS 의 EC2 같은 거예요.
새롭게 세팅을 해서 새로운 리눅스에서 새로운 이제 프로그램 하나만 설치하는 효과를 보게 되는 거죠.
실제로는 그렇지 않은 거죠 그렇기 때문에 훨씬 가벼우면서 가상머신 효과를 주기 때문에 각자만의 충돌이 전혀 발생하지 않도록 관리가 가능해집니다.
이렇게 되면은 굉장히 혁명적인 거예요.
사실 리눅스 서버를 관리하는 사람의 입장에서는 이것만큼 만족스러운 결과가 없습니다.
굉장히 성능적으로도 좋고요.
나중에 유지보수 관리할 때도 프로그램들마다 컨테이너를 관리해 주면 되기 때문에 굉장히 관리하기가 좋아진다 라고 말합니다.
나중에는 도커 파일이라든지 이런 세부적인 이해도까지 높아지게 되면 리눅스를 거의 코드처럼 관리할 수가 있어서요.
뭐가 변하고 어떻게 관리가 되는지 알아서 보통 회사에서 서버 한 대가 돌게 되면 1년이 지나고 2년 지나고 누군가가 이직하고 새로운 사람이 들어오고 계속 명령어를 입력하고 하던 것들이 계속 쌓이면서 리눅스 서버 안에서 뭐 했는지도 모르고 굉장히 갈아 엎어야 되는 이런 상황까지 오는 경우들이 많은데요.
컨테이너 쓰게 되면 그런 것들이 완전히 철저하게 방지가 됩니다.
왜? 리눅스 환경 자체가 독립화 돼서 그리고 도커 파일 같은 코드로 관리가 될 수가 있기 때문에 1년이 지나도 2년 지나도 3년 지나도 한결 같음 유지할 수가 있겠고요.
유지하는 것들도 변화되는 과정들도 다 역사 관리가 철저하게 될 수가 있습니다.
자, 이렇게 해서 컨테이너 까지 한 번 설명을 맞춰 봤어요.
결국에는 이런 다양한 프로세스 들이 시스템 자원을 모두 다 공유하는 게 아니라 이게 각자 만의 시스템 자원들을 가질 수있다는 게 핵심 포인트가 되겠고요 이어서 도커 까지 설명을 좀 드려보도록 하겠습니다.
자 도커 라는 게 뭐냐, 이 도커 라는 건 결국에 컨테이너를 생성 혹은 삭제 하는 그런 컨테이너 생성 도구라고 보시면은 좋습니다.
물론 관리라는 단어를 사용하고 싶으실 수 있어요.
아예 틀린 말은 아니지만요.
저는 여기서 관리라는 말은 조금 뺐습니다.
왜냐하면 주요 기능은 그게 아니라고 좀 핵심을 말씀드리고 싶어요.
왜냐면 도커가 얘기가 나오는 순간 결국에는 쿠버네티스 얘기가 안 나올 수가 없거든요.
물론 이번에는 쿠버네티스를 다루지는 않겠지만, 뒤에 영상에서 이어서 한 번 쿠버네티스 다뤄볼 예정이에요.
근데 차이점 만큼은 명확하게 들고 가시는 게 좋습니다.
자, 도커는 컨테이너를 결국에 생성하는 거예요.
물론 삭제하는 것과 약간의 관리하는 기능들이 포함이 되어 있는 건 맞겠지만 핵심은 런 타임 도구예요 결국에 컨테이너를 만들어 낸 거 그러니까 일반적인 프로세스는 시스템 나오는 전체를 공유하게 되는 되요 근데 그거를 개별로 가져갈 수 있도록 세팅해 주는 역할인 거죠.
그래서 그게 핵심이에요 컨테이너가 수억 개가 되고 수백 개가 되고 물리적인 컴퓨터가 몇 서버가 몇 대가 되고 뭐 몇 만 대가 되고 이런 거하고는 관련이 없어요. 조금 미시적인 관점이라고 보셔야 되는 거죠.
그럼 쿠버네티스 뭡니까?
컨테이너 관리하는 도구 아닙니까?
그쵸?
그래서 제가 관리라는 단어를 여기서는 사용하지 않았는데요 왜냐하면 쿠버네티스 비하면 도커 프로그램은 그냥 생성하는 도구에 지나지 않습니다.
관리라는 용어를 쓰기에는 너무 미시적인 세계예요 물론 이제 Docker Swarm 이라든지 이런 건 쿠버네티스 하고 같은 레이어의 도구 이기 때문에 사실 도커 하고 Docker Swarm은 좀 개별적으로 생각을 해 주셔야 되고요.
Docker Swarm 같은 경우에는 컨테이너가 만들어진 것들을 기반으로 해요.
이 서버 운영 관리를 하는 핵심적인 도구라고 보시는 게 맞아요. 그래서 컨테이너를 생성하는 런 타임 도구를 도커로 쓸 수도 있고요.
그러니까 하부 도구인 거죠.
도커를 써도 되고 아니면 도커 대신에 containerd 라든지 다른 걸 쓰셔도 되겠습니다.
기본 값은 containerd 로 돼어 있다고 볼 수 있겠고요.
그래서 이렇게 만들어진 도구로 운영하는 도구 그러면은 어 서버 운영한다 운영한다는 게 도대체 뭔 말입니까? 라고 할 수 있어요.
이것까지 다 얘기하면 사실 쿠버네티스가 되버리기 때문에 좀 복잡해 지겠지만 뭐 한 두 가지 정도만 예시를 들어볼게요 서버를 운영한다 라는 건요.
결국에 트래픽이 많아 졌을 때 로드를 밸런스 하는 부분에 대해서 설계를 해야 되는 것들이 있을 수가 있겠고요.
그리고 스케일 아웃 이라든지 스케일 인 그런 식으로 이렇게 트래픽이 많아 졌을 때 로드를 감당해야 되는 거에 대해서 물리적인 서버가 늘어날 수도 있고요.
컨테이너의 개수가 늘어날 수도 있겠고요.다시 줄어들어야 될 수도 있겠고요. 죽은 컨테이너가 있으면 다시 복구 장애 복구를 해야 될 수도 있겠고요.
이런 게 운영 관리에 있는 핵심 포인트들입니다.
그래서 다양한 기능들이 있어요, 핵심적인 기능들이 있고요.
그런 기능들을 표준화 시켜서 그 기능을 포함하고 있는 도구를 컨테이너 오케스트레이션 도구라고 얘기 하게 됩니다.
그래서 그런 차이점이 있는 거예요.
도커 쿠버네티스는 서버 운영의 핵심적으로 초점이 맞춰져 있는 도구냐 아니면 컨테이너 생성,삭제 컨테이너 생성의 핵심을 맞춰서 사용하는 도구이냐 의 차이점이 있다라고 말씀드릴 수 있겠고 관리라는 단어를 굳이 넣는다면 그거는 쿠버네티스에 넣는 게 사실은 더 적합하다 라고 말씀드릴 수가 있겠습니다.
자 이런 식으로 해서 일단 도커의 정의 까지는 내려 봤어요.
근데 이제 이 도커 라고 하는 것은 실체를 한 번 말씀드려 볼게요.
여기 보면은 그림상도커 라는 고래그림 있고요. 그 위에 컨테이너가 올라와 있죠.
그래서 마치 도커가 운영 체제 라도 된 것 만큼 이 중요한 베이스 역할을 하는 것처럼 이렇게 느껴지는데요 물론 좋은 역할을 하고 중요한 역할을 하는 거는 맞습니다.
하지만은 실제 물리적으로 본다면 이 도커는 운영 체제는 아니에요.
실제로 이거는 하드 웨어 자원 이나 어플리케이션 자원을 어느 정도 제외하는 건 맞지만, 운영 체제 에게 도움을 받아서 한다라고 말씀드릴 수 있겠고요.
그래서 이 도커 자체는 그냥 유저 프로세스 입니다. 일반 프로세스 예요.
그리고 웹 서버 프로그램이 일반 프로세스가 있다면, 시스템 자원을 똑같이 공유하는 일반 프로세스에, 다만 이런 일반 프로세스를 그냥 프로세스로 실행하지 않고 개별적인 독립적인 환경의 프로세스로 만들어 주는 역할을 하게 되는 거죠.
그리고 이 친구가 없어졌을 때 자원 해주라 하는 것들, 이런 잡다한 관리들을 같이 해주는 게 도커라는 특수한 일반 유저 프로그램입니다.
그리고 내부적인 기술만 하나만 말씀드린다면 이 도커 라는 친구가 리눅스 에게 부탁을 해요 요청을 합니다.
무슨 요청, namespace 혹은 cgroup이라고 하는 기술을 기준으로 해서 요청을 하게 돼요.
그래서 그 요청을 통해서 컨테이너를 생성하게 됩니다.
그래서 실제 코어기능은 리눅스 커널에 있는 거죠.
어찌됐든 도커는 컨테이너를 이렇게 생성 하거나 삭제하는 것들에 대한 그런 미시적인 레벨의 관리 도구라고 말씀을 드릴 수가 있겠고요.
이 도구에 대해서 한 번 좀 설명을 좀 드려 보기 위해서 좀 정리를 다시 한 번 해 본다면 이 컨테이너는 결국에 자신만의 리눅스 시스템 자원에 갖는 그런 프로세스다 라고 말할 수 있겠고, 일반 프로세스 하고는 비교를 좀 해 봐야겠죠.
비교해야 되는 대상이 루트 파일 시스템 이라든지 네트워크 혹은 프로세스 관리 시스템 인데요.
이거를 한 번 영상으로 실제 실습으로 한 번 보도록 하겠습니다.
관련내용의 리얼리눅스 강의는 도커/쿠버네티스 기초를 추천합니다.
https://reallinux.co.kr/course/se_docker
https://www.youtube.com/watch?v=dWY12E_CMMc
'리눅스 이야기' 카테고리의 다른 글
sync 와 /proc/sys/vm/drop_caches 차이점 (0) | 2024.02.05 |
---|---|
쿠버네티스가 무엇일까요? (0) | 2024.01.29 |
초보자들이 자주 겪는 리눅스 문제/ 오류 해결 방법 (0) | 2024.01.16 |
리눅스 배우면 서버엔지니어 가능한가요? (1) | 2024.01.10 |
왕초보 리눅스 명령어 기초훈련 (1) | 2023.12.21 |