SEB[Docker]

Jogi's 코딩 일기장·2021년 9월 17일
0


배포와 관련하여 Docker에 대해서 간략히 학습을 했으며, 내용 정리를 해보려 한다.

Docker

  • 리눅스 컨테이너 기술을 기반으로 하는 오픈 소스 서비스
  • 도커를 통해 애플리케이션 실행환경을 코드로 작성할 수 있으며, OS를 격리화해서 관리한다.

Linux Container

  • 필요한 라이브러리와 애플리케이션을 모아소 마치 별도의 서버처럼 구성한 것
  • 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유하고 있다.
  1. 프로세스 구획화
  • 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스할 수 있다.
  • 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.
  1. 네트워크 구획화
  • 기본적으로 컨테이너 하나에 IP 주소가 할당되어 있다.
  1. 파일 시스템의 구획화
  • 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있다. 그래서 해당 컨테이너에서의 명령이나 파일 등의 액세스를 제한할 수 있다.

도커가 해결 가능한 문제들

  1. 환경 표준화
  2. 수작업으로 일치시키는 환경구성 어려움
  3. 리소스 격리성을 제공한다.
    • 실제로 하나의 컴퓨터를 사용하지만 여러 개의 컴퓨터를 이용하는 것처럼 하는 것
    • 리소스 격리성을 제공하는 기술로는 가상머신, 도커 등이 있다.

도커와 가상 머신 차이

  • 도커는 가상머신만큼 견고한 격리성을 제공하지 않는다.
  • 도커는 리눅스 컨테이너를 이용한 기술로 OS 위에 다른 OS를 실행하는 것이 아니므로 가상머신보다 좋은 성능을 낼 수 있다.
  • 애플리케이션에 대한 환경 격리성을 중심으로 한 VM과는 달리, 도커는 컨테이너 관점에서 개발자와 사용자 커뮤니티를 중심으로 혜택을 제공한다.

도커 컨테이너 라이프 사이클

도커 실습

  • 도커 이미지 구분

    Registry_Account/Repository_Name:Tag

  • 레지스트리

    • 도커 이미지를 관리하는 공간
    • 따로 지정을 하지 않는다면, 도커 허브(Docker Hub)를 기본 레지스트리로 설정한다.
  • 레포지토리

    • 레지스트리 내 도커 이미지가 저장되는 공간
    • 이미지 이름이 사용되기도 한다.
  • 태그

    • 같은 이미지라 할지라도 버전 별로 안의 내용이 다를 수 있다.
    • 해당 이미지를 설명하는 버전 정보를 주로 입력한다.
    • 따로 지정하지 않는다면, latest 태그를 붙인 이미지를 가져온다.
  • ubuntu 환경에서는 sudo명령어와 함께 도커를 실행한다.

    sudo docker image pull {image}

  • 도커 이미지 리스트 출력

  • 도커 컨테이너 실행

    docker container run [OPTIONS] IMAGE [COMMAND][ARG...]

  • 도커 컨테이너 리스트 출력

  • 도커 컨테이너 삭제(컨테이너 이름으로)

  • 도커 이미지 삭제

  • 도커 작업 한번에 하기(이미지 받아오기, 컨테이너 실행, 컨테이너 제거)

    이미지는 삭제하기 않기 때문에 이미지는 따로 삭제를 해준다.

Reference

  • 코드 스테이츠 강의자료
profile
프로그래머로서의 한걸음

0개의 댓글