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) 빠른 운영환경 구성
- 미리 사용자들이 만들어 둔 이미지(개발환경)를 다운받아 실행만 하면 해당 환경을 구축할 수 있다
3) 관리의 용이
- 이미지 만을 관리 배포 하면 되므로 운영환경의 관리가 용이하다
4) 확장성
- 한번 만들어낸 이미지를 이용하여 여러 서버들에서 사용가능하다
가상머신과의 차이점
(기존의 서버 가상화 방법) ( Docker )
- 가상머신과 달리 운영체제를 별도로 필요로 하지 않는다 때문에 성능상의 이점이 있다.
Docker 의 네트워크 및 포트포워딩 방법
'Server > Docker' 카테고리의 다른 글
🐳 Docker 도커 - #1 기본 명령어 모음 (0) | 2021.05.18 |
---|---|
Docker 명령어 정리 (0) | 2021.05.18 |
[Docker] 란 ? VM과 차이, Docker 설치 및 기본 명령어를 중심으로 (0) | 2021.03.25 |
[Docker] Docker란 무엇일까? (0) | 2021.03.22 |
[Docker] - Docker란 무엇이고 왜 사용했는가? (0) | 2021.03.22 |
댓글