ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 소개 [초보자를 위한 Doker 실습 - 데브옵스(DevOps)]
    DevOps/Docker 2023. 5. 11. 14:24

    1. Docker 개요

    왜 도커가 필요한가?

        ㆍ1. 기초가 되는 운영 체제와의 호환성 문제

        ㆍ2. 운영체제에 구성된 서비스 그리고 라이브러리와 의존성 간 호환성 - 지옥의 매트릭스(The Matrix from Hell)

     

    - 호환성 문제를 해결하고, 컴포넌트를 수정하거나 변경하면서도 다른 컴포넌트에 영향을 주지 않으면서 운영체제 수정 가능

    - 각자의 의존성과 라이브러리를 갖춘 분리된 컨테이너를 활용해 같은 가상 머신과 운영 체제에서 환경과 컨테이너를 분리

     

    컨테이너란 무엇일까?

    - 컨테이너란 완전히 분리된 환경으로 각자의 프로세스, 서비스 그리고 네트워크 인터페이스, 마운트를 가상 머신처럼 가지고 있지만 운영 체제 커널은 동일하다.

    - LXC, LXD, LXCFS 등이 있다. Docker는 그중 LXC 컨테이너를 사용한다.

    - 컨테이너 환경은 저수준(Low-Level)이라 설정이 어렵지만

    - Docker에서 제공하는 강력한 기능성의 고수준(High-Level) 툴이 있으면 쉽게 작업

     

    운영 체제

    - Ubuntu, Fedora, SUSE, CentOS

    - 운영 체제 커널과 소프트웨어들로 구성

        ㆍ운영 체제 커널은 기반 하드웨어와 상호작용하는 역할

        ㆍ소프트웨어로 인해 운영체제의 차이가 발생 - 다양한 UI, 드라이버, 컴파일러, 파일 관리자 개발자 툴 등

     

    커널은 공유한다는 것은 무슨 뜻?

    - 예를 들어 Docker가 설치된 Ubuntu 운영체제가 있다.

    - Docker는 같은 커널에 기초하기만 하면 어떤 운영 체제라도 실행할 수 있다.

    - 따라서 Debian, Fedora, SUSE, CentOS 등의 OS에 기반한 컨테이너를 실행할 수 있다.

        ( 소프트웨어 때문에 OS가 나뉠 뿐 )

    * 커널은 공유하지 않는 것이 Windows 이다.

        ㆍ즉, Linux가 설치된 Docker 호스트에서는 Windows 기반 컨테이너를 실행할 수 없다.

     

    - Docker는 같은 하드웨어 상에서 다른 운영 체제를 가상화하는 것이 아니라  애플리케이션을 패키지화하고 컨테이너화해서 원하는 만큼 실행할 수 있도록 배포하는 것이다.

     

    가상 머신과 컨테이너의 차이점

    - 도커

        ㆍ하드웨어 인프라 - 운영체제 - 도커 - 컨테이너 - 라이브러리, 의존성

        ㆍ가볍고 MB 단위의 용량만을 차지한다.

        ㆍ컨테이너 간 공유하는 커널과 같은 리소스가 많이 때문이다.

    - 가상 머신

        ㆍ하드웨어 인프라 - 하이퍼바이저 - 가상 머신

        ㆍ여러 개의 가상 운영 체제와 커널이 실행되기 때문에 많은 리소스 소모

        ㆍ무겁고 용량을 많이 차지한다. 그 단위가 GB에 달한다.

        ㆍ기반 운영체제나 커널에 의존하지 않아 완전히 분리되어 서로 다른 운영체제의 다른 애플리케이션을 실행

     

    - 수천 개의 Docker 호스트에서 수 천가지의 앱을 실행하고자 하면 가상 머신과 도커를 함께 사용

     

    컨테이너와 이미지의 차이점

    - Docker Image

        ㆍ컨테이너를 만드는 데 사용

    - Container

        ㆍ컨테이너는 서로 분리된 이미지 인스턴스가 실행되는 곳으로 각자의 환경과 프로세스들을 지니고 있다.

     

    2. Docker 시작하기

    - Docker는 커뮤니티 에디션(Community Edition) 과 엔터프라이즈 에디션(Enterprise Edition) 으로 나뉜다.

        ㆍ커뮤니티 에디션은 Docker의 무료 제품으로 구성

        ㆍ엔터프라이즈 에디션은 이미지 관리 및 이미지 보안과 같은 엔터프라이즈 애드온을 지원하고

            컨테이너 런타임관리 등 전반적으로 관장할 수 있는 인증된 컨테이너 플랫폼

     

    3. Docker 설치에 대한 고지 사항 ( Windows 에서의  Docker )

    1. Docker toolbox

    - Windows에서 직접 Linux 컨테이너를 실행할 수 없다. & 그저 Windows 호스트에서 Linux VM으로 Docker 작업을 할 뿐이다. →  toolbox가 쉽게 하도록 도와주는 도구 모음

    - Docker Toolbox에는 Oracle Virtualbox, Docker Engine, Docker Machine, Docker Compose 를 비롯한 도구들과 Kitematic GUI가 포함된다.

    - 요구사항 : OS가 64비트, Windows 7 이상, 가상화(Virtualization) 활성화

    - 최신 Windows 용 Docker 옵션과는 호환되지 않는다.

     

    2. Docker Desktop

    - Virtualbox 가 아닌 Microsoft Hyper-V를 생성

    - 요구사항 : Hyper-V 를 지원 : Windows 10 Enterprise 또는 Professional 버전 그리고 Windows Server 2016 에서만 지원

    - Windows Server 2016 부터 Microsoft에서 처음으로 Windows 컨테이너 지원을 발표

    - Docker Desktop을 사용하면 Windows 애플리케이션을 Windows Docker 컨테이너에 패키징하고, Windows Docker 호스트에서 실행할 수 있다.

    - Docker Desktop을 설치할 때 기본 옵션은 Linux 컨테이너를 사용한다.

    - Linux와 다르게 Windows 에는 두 가지 컨테이너가 있다.

        ㆍ우선 Linux 컨테이너와 유사하게 작동하는 Windows 서버 컨테이너이다.

        ㆍ컨테이너 사이의 보안 경계 개선과 다양한 버전과 구성을 갖춘 커널들의 공존을 위해 도입한 Hyper-V 격리

        ㆍHyper-V 격리를 사용하면 고도로 최적화된 VM에서 실행되어 컨테이너와

            그 아래에 있는 호스트 사이의 완전한 커널 격리를 보장한다.

     

    * Linux의 다양한 Linux 시스템용 기반 이미지 : Ubuntu, Debian, Fedora, Alpine 등

    - Windows는 Windows 서버 코어와 나노 서버가 있다.

        ㆍ나노 서버는 Windows 서버용 헤드리스(headless) 배포 옵션이다. 전체 운영체제의 일부 규모로 실행

        ㆍWindows 서버 코어는 예상보다 무겁다. 

     

    * 현재 도커를 설치하면 Hyper-V 보다 wsl 을 이용하는 것을 더 선호한다고 한다.

     

    4. Docker 설치 및 설정하기

    - 리눅스 환경일 때 참조

        ㆍhttps://docs.docker.com/desktop/install/linux-install/

     

    - docker 이미지 확인

        ㆍhttps://hub.docker.com/

     

     

    댓글

Designed by Tistory.