티스토리 뷰

👀 Docker의 기본 개념 이해

  ✔ 컨테이너 (Container)

      - 애플리케이션을 독립적으로 실행할 수 있는 가벼운 환경

      - 실제 사용하는 것 (≒ 빵)

 

  ✔ 이미지 (Image)

      - 컨테이너의 실행 파일 및 종속성을 포함한 템플릿

      - 간단히 설명하면 이미지는 컨테이너를 만드는 '빵틀'과 같다. 

        사용자는 빵틀이 아닌 빵틀로 만들어낸 빵을 원한다. 즉, 이미지 자체로는 큰 쓸모가 없으며 컨테이너를 만드는데 사용한다.

 

  ✔ Docker Daemon

      - Docker의 백그라운드에서 실행되는 프로세스

 

  ✔ Docker CLI

      - 커맨드라인에서 Docker와 상호작용하기 위한 명령어 도구

 

  ✔ Docker Hub

      - Docker 이미지의 공식 저장소

 

  ✔ 마운트

      - 디스크를 연결해 데이터를 기록할 수 있도록 한 상태

      - '볼륨을 마운트한다' : 호스트 시스템의 디렉토리나 파일을 도커 컨테이너에 연결하여, 컨테이너가 그 디렉토리나 파일에 접근하고 사용할 수 있게 만드는 것을 의미

 

  ✔ 호스트

      - 도커가 설치된 물리적 서버

 

  ✔ 볼륨 (Volume)

      - 컨테이너와 호스트 간의 데이터를 공유하기 위한 방법. 컨테이너가 삭제되어도 데이터가 유지된다.

      ✔ 데이터 퍼시스턴시 (Data Persistency)

          : 컨테이너는 생성 및 폐기가 매우 빈번하므로 매번 데이터를 옮기는 대신 애초에 컨테이너 외부에 데이터를 둔다. 

 

  ✔ 네트워크 (Network)

      - 여러 컨테이너 간의 통신을 위한 네트워크 구성을 정의한다. 기본적으로 브릿지, 호스트, 오버레이 등 여러 네트워크 모드를 제공한다.

 

  ✔ 오케스트레이션 (Orchestration)

      - 여러 개의 컨테이너를 효과적으로 관리하고 자동화하기 위해 사용하는 기술. 대표적인 도구로 Kubernetes, Docker Swarm등이 있음

 

  ✔ CMD와 ENTRYPOINT

      - CMD와 ENTRYPOINT는 Docker컨테이너가 실행될 때 수행할 기본 명령어를 지정한다. 

      - CMD는 인자처럼 변경이 가능하고

      - ENTRYPOINT는 고정된 명령어로 설정된다.

 

  ✔ 데몬 (Daemon)

    - 유닉스 또는 리눅스에서 동작하는 프로그램 중에서 백그라운드에서 항상 동작하는 프로그램을 관례적으로 일컬어 데몬이라고 한다.

 

 

🏢 컨테이너

✔ 컨테이너의 생애주기?

    - 컨테이너는 쉽게 만들 수 있기 때문에 오래된 컨테이너를 유지보수 하는 수고보다 새로 만드는 것이 덜 수고스럽다.

    - 컨테이너를 만들고 → 실행하고 → 종료하고 → 폐기하는 과정이 컨테이너의 생애 주기이다.

    - 하지만 폐기하기 전, 데이터가 존재한다면 도커가 설치된 물리적 서버(호스트)의 디스크를 마운트해 데이터를 저장해야한다.

 

✔ 컨테이너의 로그 관리

    - Docker는 기본적으로 컨테이너의 표준 출력 로그를 관리한다

    - docker logs 명령어를 사용해 로그를 확인할 수 있다.

 

🤷‍♀️ 도커의 장단점

✔ 도커의 장점

     "환경을 격리할 수 있다" 는 핵심이 되는 성질 덕분에 아래와 같은 장점을 가진다.

    1. 독립된 환경

        : 독립된 환경으로 여러 개의 컨테이너를 띄울 수 있으며, 똑같은 애플리케이션도 여러 개 띄울 수 있다.

    2. 이미지 생성 및 배포

        : 이미지를 만들고 도커허브에 배포하여 사용할 수 있으므로 교체가 쉽고, 업데이트가 간편하다.
          또한, 이미지를 사용해 이동이 쉬우므로 똑같은 컨테이너를 쉽게 만들거나 환경 이동, 개발환경 구축이 쉽다.

    3. 커널이 없다.

        : 운영체제의 핵심이 되는 커널을 포함시킬 필요가 없으므로 소프트웨어적으로 하드웨어를 재현하는 가상화 기술에 비하면 압도적으로 가볍다.

 

✔ 도커의 단점

    1. 리눅스 한정

        : 리눅스 운영체제를 사용하는 기술이므로 리눅스용 소프트웨어밖에 지원하지 않는다.

    2. 물리서버 한 대에 여러 대의 서버를 띄우는 형태

        : 호스트 서버에 문제가 생기면 모든 컨테이너에 영향을 미친다.

    3. 단일 컨테이너라면 장점을 느끼기 힘들다.

        : 단일 컨테이너라면 도커 엔진이 단순한 오버헤드에 지나지 않기 때문에 컨테이너를 여러 개 사용하는 형태를 가정한다.

 

 

🔧 윈도우 설치 방법

1. 제어판 항목 활성화

  - 제어판 > 프로그램 > 프로그램 및 기능 > Windows 기능 켜기/끄기 접속

  - [Linux용 Windows 하위시스템][가상 머신 플랫폼] 기능을 체크한 뒤 확인버튼 클릭

  - PC 재부팅

 

2. 리눅스 커널 업데이트

  - https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 접속 후 다운 및 설치

 

3. 윈도우용 Docker 다운로드 및 설치

  - https://docs.docker.com/docker-for-windows/install 접속 후 다운 및 설치파일 실행

  - 환경 설정 항목 모두 체크표시 후 [OK] 버튼 클릭

  - 설치완료 후 [Close and log out] 버튼을 클릭해 윈도우에 다시 로그인 (여기서 블로그 백업을 안해서 캡처본이 다 날아감 ಥ_ಥ)

 

4. Docker Subscription 동의

  - Accept 버튼 클릭

 

5. Use recommended settings 체크 후 Finish

6. 계정 로그인 (없으면 간단히 회원가입 가능!)

 

7. 쨔란~✨

 

💡 내가 WSL 2를 사용하고 있나 궁금하다면 해당 대쉬보드 우측 상단에 setting접속 > General > Use the WSL 2 based engine 항목에 체크되어있나 확인

→ 체크안되어있으면 도커 엔진이 Hyper-V를 통해 동작하고 있음

 

 

도커의 조작 및 컨테이너 생성 작업들은 추후 게시글에 업로드하기 안하면 앞으로 빵 없음 (내자신과의 약속임)

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함
250x250