본문 바로가기
Develop/DevOps

Docker

by jaeyoungb 2022. 12. 6.

Docker

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

 

장점

  • 의존성 충돌 문제 해결
  • 개발과 배포 환경을 일치시켜줌
  • 수평 확장에 용이
  • 각 서버에 새로운 내용을 배포하기에 용이

 

컨테이너에 의해 격리되어 개별적으로 소유할 수 있는 자원

  • 프로세스
    - 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없음
  • 네트워크
    - 컨테이너에는 하나의 IP 주소가 기본으로 할당되어 있음
  • 파일시스템
    - 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있음

 

컨테이너 기술의 가장 큰 장점은 실행 환경의 일치이다.

 
 
 
 

Docker 핵심 키워드

  • 레지스트리(Registry)
    - Docker Hub : https://hub.docker.com/
    - 도커 이미지를 관리하는 공간
    - 특별히 다른 것을 지정하지 않는다면, 도커 허브(Docker Hub)를 기본 레지스트리로 설정
    - 레지스트리는 Docker Hub, Private Docker Hub, 회사 내부용 레지스트리 등으로 나뉠 수 있음
  • 레포지토리(Repository)
    - 레지스트리 내에 도커 이미지가 저장되는 공간
    - 이미지 이름이 사용되기도 함
    - GitHub의 레포지토리와 유사
  • 태그(Tag)
    - 해당 이미지를 설명하는 버전 정보를 주로 입력
    - 특별히 다른 것을 지정하지 않는다면 latest 태그를 붙인 이미지를 가져옴

 

 

Docker 주요 명령어

 

- Docker Container, Data Volume

- https://ko.wikipedia.org/wiki/%EB%B3%BC%EB%A5%A8_(%EC%BB%B4%ED%93%A8%ED%8C%85) 

- https://www.joinc.co.kr/w/man/12/docker/Guide/DataWithContainer

- Dockerfile : https://docs.docker.com/engine/reference/builder/

 

 

컨테이너와 VM(Virtual Machine) 비교

컨테이너(좌)  VM(우)

- https://commons.wikimedia.org/wiki/File:Docker-containerized-and-vm-transparent-bg.png

 

 

VM은 Docker와 달리 한 호스트 컴퓨터에 여러 개의 컨테이너를 띄워도 컴퓨터에 크게 무리가 가지 않는다.

또, VM을 사용하기 위해서는 해당 VM 위에 OS를 설치해야 하지만, Docker는 그럴 필요가 없다.

 

 

'Develop > DevOps' 카테고리의 다른 글

Cloud 운영 전략  (0) 2022.12.09
리눅스 명령어 - 프로세스 Kill  (1) 2022.12.08
Cloud 개요 및 AWS 서비스 - 수동 배포  (0) 2022.12.08
Cloud 배포 자동화  (0) 2022.12.08
애플리케이션 빌드 / 실행 / 배포  (0) 2022.11.15