Docker TIL 01

Nabang Kim·2021년 9월 17일
0

Docker

목록 보기
1/3
post-thumbnail

2021년 9월 17일에 작성된 문서 1번 입니다.
docker 배운 내용을 정리했습니다.



Docker

리눅스 컨테이너(Linux Container) 기술 기반의 오픈 소스 서비스



Linux Container

  • 필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것.
  • 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유하고 있다.

Linux Container 특징

특징설명
1. 프로세스의 구획화특정 컨테이너에서 작동하는 프로세스는 그 컨테이너 안에서만 액세스 가능.
다른 컨테이너의 프로세스에게 영향을 줄 수 없다.
2. 네트워크의 구획화컨테이너 하나에 IP 주소가 할당
3. 파일 시스템의 구획화컨테이너 안에서 사용되는 파일 시스템은 구획화 되어 있다.
해당 컨테이너에서의 명령이나 파일 등의 액세스를 제한 가능



Docker가 해결할 수 있는 문제들

1. 환경 표준화

개발하려고 하는 여러 애플리케이션을 구동하는 운영체제가 서로 다르다면 환경에 따라 조금씩 변경할 부분이 발생합니다. 같은 Linux 인 Ubuntu, CentOS, Debian 은 서로 다른 환경이므로 여러 버전이 존재할 수도 있습니다.



2. 수작업으로 일치시키는 환경 구성

개발된 애플리케이션을 내 컴퓨터에 설치해 사용하고자 할 때, '내 컴퓨터' 혹은 '내 사용 목적'에만 맞는 설정이 따로 필요할 수 있습니다. 예를 들어 환경 변수처럼, 같은 OS라도 사용자에 따라 달라지는 구성이 있습니다.



3. 리소스 격리성

  • 리소스 격리성:
    • 실제로는 하나의 컴퓨터를 사용하지만, 마치 여러 개의 컴퓨터를 이용하는 것
  • 리소스 격리성을 제공하는 기술로: 가상 머신(Virtual Machine), 도커
    • 가상 머신:
    • 개발 환경이나 사용 환경을 이미지로 저장
    • Host OS 위에 게스트 OS를 올리는 방식: VirtualBox, VMware

      가상 머신과 도커는 격리성을 제공하기 때문에, 각 애플리케이션마다 다른 컴퓨터에서 실행되는 것처럼 IP나 Port 등을 다르게 설정할 수 있습니다.




도커 VS 가상 머신

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



Docker Container Lifecycle

도커 컨테이너의 독립적인 특징을 기반으로 한 Lifecycle이 있습니다. 위 그림을 보면, 컨테이너의 생성, 실행, 종료의 과정을 이해할 수 있습니다.






Written with StackEdit.

0개의 댓글