
: 어플리케이션 실행 환경을 코드로 작성할 수 있고, OS를 격리화해 관리하는 리눅스 컨테이너 기술을 제공하는 서비스
어플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징
컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것들이 포함되어 있음
Docker란 무엇입니까?
1. 환경 표준화
: 다양한 운영체제 환경에 상관없이 어플리케이션이 똑같이 동작하게 하기 위해
2. 컴퓨터별 사용 설정 표준화
: 같은 OS를 사용하더라도 어플리케이션을 설치할 때 컴퓨터별로 다른 설정이 필요함
-> 개발 혹은 실행에 대한 환경 설정이 코드화되어 있다면 편하게 작업 가능
3. 리소스 격리성
: 하나의 컴퓨터에서 여러 개의 컴퓨터를 이용하는 것처럼 사용할 수 있게 해주는 것
가상머신, 도커
(왼: 도커, 오: 가상머신)
: 개발 혹은 사용하는 환경을 이미지로 저장, Host OS 위에 Guest OS를 띄우는 방식
=> 가상화와 도커는 격리성을 제공하기 때문에 각 어플리케이션마다 다른 컴퓨터에서 실행되는 것처럼 IP 주소와 Port 등을 다르게 설정 가능
(IP 주소: 집주소 - 인터넷 상에 있는 컴퓨터의 고유한 주소,
Port: 방 번호)
4.
코드를 더 빨리 전달
어플리케이션 운영 표준화
-> 작은 컨테이너식 어플리케이션을 사용해 손쉽게 배포, 문제 파악, 수정을 위한 롤백 가능
코드를 원활하게 이동
리소스 사용률을 높여 비용 절감
어디서나 안정적으로 실행할 수 있는 단일 객체 확보
필요할 때마다 격리된 서비스 제공 가능
Docker란 무엇입니까?
필요한 라이브러리와 어플리케이션을 모아 마치 별도의 서버처럼 구성한 것
컨테이너를 이루는 네트워크 설정, 환경변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유
도커의 기반이 되는 기술
1. 프로세스의 구획화
2. 네트워크의 구획화
: 컨테이너 하나에 IP 주소가 기본으로 할당되어 있음
3. 파일 시스템의 구획화
: 컨테이너 안에서 사용되는 파일 시스템이 구획화되어 있기 때문에 해당 컨테이너에서의 명령이나 파일 등의 액세스 제한 가능