Docker이란?
- 리눅스의 Container 기술을 이용해 가상머신처럼 하드웨어의 자원을 완전히 가상화 하지 않고 프로세스들만을 격리시켜 빠르게 어플리케이션 환경을 구축 및 배포할 수 있게 해주는 기술
- 가상머신처럼 독립된 환경을 만들어주는 도구이다
사용이유?
- 리눅스의 커널을 제외한 배포판을 이용하여 각각의 독립된 환경인 컨테이너를 생성하고 관리하므로
가상머신보다 훨씬 가볍고 빠르다
- 가상 서버를 생성하면 그것에 내가 서비스하기위한 환경 및 서버를 설정해야 한다 한 두대의 서버는 직접 가능하겠지만
클라우드의 환경에서 수천대의 서버를 관리하기 위해서는 조금 더 효율적인 방법이 필요했다
- 서비스 환경을 갖춘뒤 그것을 이미지로 만들어 배포하면 여러 서버에서 간단히 그것을 실행 하므로써 서비스
운영 환경이 갖추어지기 때문
용어
1) Image
- 어떠한 개발 환경을 구축하기위해 필요한 라이브러리 및 패키지를 모아 하나의 파일로 만들어 둔것
- 운영체제의 프로그램과 비슷하다
- docker image는 컨테이너와 별개이다 즉 컨테이너에서 변경한 내용들은 image에 적용되지 않는다
- 1. base image : 리눅스 배포판의 유저랜드만 설치된 파일
2. Docker image : 베이스이미지에다가 필요한 프로그램, 라이브러리 , 소스를 설치한뒤 하나의 파일로 만든 것
2) Container
- 이미지가 실행된 형태
- 컨테이너에서 파일을 만들거나 서비스를 설치하면 컨테이너 레벨에서 저장이 되고 이미지에는 영향이 미치지 않는다
컨테이너가 종료되더라도 다시 실행하면 이전 상태가 유지된다 따라서 완전히 제거를 하는 명령어가 따로 존재한다
- 단순히 image안의 파일을 실행할 목적으로 생성된 것 때문에 메인으로 실행되는 파일이 종료되면 컨테이너도 같이 종료된다
- 운영체제의 프로세스와 비슷하다
3) DockerHub
- Git Hub와 같이 사용자들이 Image들을 만들어 서로 공유할 수 있는 커뮤니티이다
- Git의 개발자가 Git Hub를 만들지 않은것과 달리 Docker의 개발진들이 만들었다
4) Immutable Infrastructure
- OS와 서비스 운영 환경(서버프로그램, Source Code)을 분리한 개념으로 한번 설정한 서비스 운영 환경은
변하지 않는다는 개념이다
장점
1) 성능상의 이점
- 도커는 실행에 필요한 파일과 라이브러리만을 포함하고 OS를 새로 설치할 필요가 없으므로 가볍고 성능의 저하가 거의 없다(99.9%).
2) 빠른 운영환경 구성
- 미리 사용자들이 만들어 둔 이미지(개발환경)를 다운받아 실행만 하면 해당 환경을 구축할 수 있다
가상머신과의 차이점
(기존의 서버 가상화 방법) ( Docker )
- 가상머신과 달리 운영체제를 별도로 필요로 하지 않는다 때문에 성능상의 이점이 있다.
Docker 의 네트워크 및 포트포워딩 방법
- http://bluese05.tistory.com/53
'Infra > Docker' 카테고리의 다른 글
Docker - Docker 이미지 만들기(Container를 image로) (1) | 2019.01.25 |
---|---|
Docker - jar파일을 실행하는 도커이미지 만들기(Dockerfile 이용) (3) | 2019.01.25 |
Docker - Docker 컨테이너의 서비스와 연결하기 위한 포트 바인딩 (0) | 2018.12.26 |
Docker - Docker 기본 사용법 (CentOS systemctl permit 오류) (2) | 2018.12.23 |
Docker - CentOS7 Docker 설치, AWS EC2에서 docker 설치 (0) | 2018.12.23 |