ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 정리 (1)
    컨테이너/도커 2021. 8. 28. 10:53

    도커란 


    도커(Docker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.

     

    특정 Application을 만들때 필요한 소프트웨어들이 여러개 있는데 이들을 설치하고 관리하는 과정은 순탄치 않다.

    (Ex. Web Server, DB ...) 

     

     

     

    이를 해결 할 수 있는 방법은 아래와 같다. 


    1. 특정 전문가가 OS에 직접 소프트웨어를 구축해서 제공

    특정 전문가가 OS에 직접 소프트웨어를 구축해서 제공한 후 우리는 네트워크 통신 통해 이를 사용한다면 너무 수월 할 것이다. 

    하지만, 이는 컴퓨터가 3대나 필요하므로 많은 비용이 들어간다. 

    출처: 생활코딩 Docker 강의

     

    2. VM (Virtual Box) 사용

    가상 운영체제인 VM 은 메인 운영체제 안에 가상의 운영체제를 설치하여 소프트웨어를 사용하는 방식이다. 

    문제는 특정 소프트웨어를 쓰려고 운영체제를 설치한다는 것은 속도도 느려질 뿐만 아니라 용량도 너무 많이 사용된다는 점이다. 

    출처: 생활코딩 Docker 강의

     

    3. 컨테이너 기술을 활용한 도커 사용

    도커를 이용하면 한대의 컴퓨터 안에서 각각의 소프트웨어를 실행할 수 있고, 이들은 각각 격리된 환경에서 실행된다. 

    출처: 생활코딩 Docker 강의

    • Host ->  운영체제가 설치된 컴퓨터
    • Container -> Host에서 실행되는 격리된 각각의 실행환경 

    VM 과의 가장 큰 차이는 각각의 컨테이너에는 운영체제 전체가 설치되어 있는 것이 아니고, 앱을 실행하는데 필요한 라이브러리와 실행 파일들만 포함되어 있다. 

     

    이미 존재하는 운영체제를 공유하니 무언가를 설치할 필요도 없으며, 운영체제도 하나여서 속도도 느려지지 않고, 저장장치의 용량도 아낄 수 있다. 

     

    VM과 Container 의 비교는 아래 블로그 글을 참고해보자. (추후에 따로 정리하여 업로드 예정)

    https://medium.com/@darkrasid/docker%EC%99%80-vm-d95d60e56fdd

     

     

     

    Script 


    도커는 리눅스의 응용 프로그램들을 프로세스 격리기술을 사용해 컨테이너로 실행하고 관리하는 오픈소스 프로젝트이다. 

    여기서 컨테이너는 Host 에서 실행되는 격리된 각각의 실행환경을 뜻한다. 

     

    도커 (컨테이너) 와 가장 많이 비교되는것이 VM 기술이며 이들의 가장 큰 차이는 각각의 컨테이너에는 운영체제 전체가 설치되어 있는 것이 아니고, 앱을 실행하는데 필요한 라이브러리와 실행파일들만 포함되어 있어 속도도 빠르고 저장장치의 용량도 적게 사용된다는 점이다. 

     

    하지만, 격리수준은 앱마다 가상 운영체제를 사용하는 VM 이 더 높으므로 상황에 맞게 사용하는 것이 올바르다. 

     

    컨테이너로 실행된 프로세스는 커널을 공유하지만, 리눅스 네임스페이스, 컨트롤 그룹, 루트 디렉토리 격리 등 커널 기능을 활용하여 격리되어 실행되는데 호스트 머신에게는 프로세스로 인식되지만, 컨테이너 관점에서는 독립적인 환경을 가진 가상머신 처럼 보인다. 
    커널은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것 .
    이용자는 쉘을 이용하여 커널을 통해 하드웨어를 사용 할 수 있다. 

     

     

     

    참고강의 


    https://opentutorials.org/course/4781

    '컨테이너 > 도커' 카테고리의 다른 글

    Docker 정리 (5) 명령어 실행  (0) 2021.08.28
    Docker 정리 (4) 도커 네트워크  (0) 2021.08.28
    Docker 정리 (4) 컨테이너 run  (0) 2021.08.28
    Docker 정리 (3) 이미지 Pull  (0) 2021.08.28
    Docker 정리 (2)  (0) 2021.08.28
Designed by Tistory.