1. Docekr
1.1. 왜 도커인가?
서비스 운영 환경을 묶어서 손쉽게 배포하고 실행하는 경량 컨테이너 기술 |
1.1.1.
: 새로운 서버에 서비스를 동작시키려면 많은 작업이 필요했음. 예를 들면, php로 만든 서비스를
동작시키기 위해선 php를 설치하고, php-mysql, php-curl, php-mbstring, php-mcrypt 등을
설치하고, php 앞단에 nginx 웹서버를 두려면 이를 연결하기 위해서 php-fpm을 설치해야 함
만약에, 새로운 서비스를 만들어 동작하고 싶은데 php 버전이 달라서 돌지 않는다면???
따라서, 도커 컨테이너는 가상의 공간을 만들어 host os와는 별개의 환경에서 프로세스들이 동작
도커는 가상의 공간을 이미지로 만들어 저장하고 하나의 이미지에서 여러 컨테이너를 생성할 수 있는데
하나의 이미지를 만들어놓으면 컨테이너는 완전히 독립된 가상 환경에서 실행이 됨.
따라서 컨테이너가 어떻게 구성되어있는지 신경쓸 필요가 없음.
1.1.2. 개발 테스트, 서비스 환경을 하나로 통일해서 효율적으로 관리할 수 있음
1.1.3. 이전에 사용하던 가상머신은 완전한 컴퓨터로 항상 게스트 OS를 설치해야했음
ㄴ 이미지 안에 OS가 포함되므로 이미지 용량이 커짐
1.2. 도커의 특징
# 도커 특징 1.2.1. guest os를 설치하지 않음 ㄴ 이미지에 서버 운영을 위한 프로그램, 라이브러리만 격리해서 설치 ㄴ 이미지 용량이 줄어듦 ㄴ host와 os 자원(system call 등)을 공유함
1.2.2. 하드웨어 가상화 계층이 없음 ㄴ 메모리 접근, 파일 시스템, 네트워크 전송 속도가 가상머신에 비해 빠름 ㄴ host와 docker container 사이의 성능 차이가 크지 않음
1.2.3. 이미지 생성과 배포에 특화 ㄴ 이미지 버전 관리 제공 ㄴ 중앙 저장소에 이미지를 push/pull
1.2.4. 다양한 API 제공, 자동화 가능 ㄴ 개발, 서버 운영에 유용 |
1.3. 이미지와 컨테이너
# 이미지와 컨테이너 1.3.1. 이미지 ㄴ 이미지는 서비스 운영에 필요한 서버프로그램, 소스코드, 컴파일된 실행파일을 묶은 형태 ㄴ 저장소에 올리고 받는건 이미지(push/pull)
1.3.2. 컨테이너 ㄴ 컨테이너는 이미지를 실행한 상태 ㄴ 이미지로 여러 개의 컨테이너를 만들 수 있음 ㄴ 운영체제로 치면 이미지는 실행파일, 컨테이너는 프로세스 |
1.4. Docker의 이미지 처리 방식
: 도커는 이미지의 바뀐 방식을 다음과 같이 처리함
ㄴ base image에서 바뀐 부분만 이미지로 생성하여 container로 실행할 때,
base image와 바뀐 부분을 합쳐서 실행함
'DOCKER' 카테고리의 다른 글
[DOCKER] 도커 컴포즈 명령어 (docker-compose) (0) | 2020.02.24 |
---|---|
[DOCKER] 도커 명령어 (0) | 2020.02.24 |
[DOCKER] 설치 및 실행 (Windows) (0) | 2019.07.03 |