Docker
"Go언어로 작성된 리눅스 컨테이너 기반으로 하는 오픈소스 가상화 플랫폼"
Linux Container
운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술
특징
- 운영체제 수준의 가상화 기술(게스트 OS 관리가 필요 없음)
- 빠른 속도와 효율성(하드웨어 에뮬레이션이 없음)
- 높은 이식성(portability, 컨테이너 각각의 독자적인 실행환경)
- 상태를 가지지 않음(stateless, 다른 컨테이너에게 영향을 주지 않음)
종류
- System Container
- 컨테이너 기술들을 사용해 운영체제 위에 하드웨어 가상화 없이 운영체제를 실행
- 다수의 프로세스가 같은 환경을 공유하는 것이 목표
- LXC, LXD
- Application Container
- 컨테이너 기술을 활용해 하나의 애플리케이션을 실행하는 것이 목표
- 단 하나의 프로세스만 실행한다
- Docker
❗ 컨테이너라는 말이 정확하게 정의되어 있지는 않은 느낌! 다 각자 설명들이 미세하게 다름... 그냥 그림으로 나는 이해해야겠다! ❗
Docker Image
컨테이너를 실행할 수 있는 실행파일, 설정 값들을 가지고 있는 것
"Image를 Container에 담고 실행시키면 해당 프로세스가 동작"
Docker File
이미지 생성 출발점, 이미지를 구성하기 위한 명령어들을 작성하여 이미지를 구성할 수 있다.
❗ 즉, Docker File을 읽을 수 있으면 해당 이미지가 어떻게 구성되어 있는지 알 수 있음! ❗
Docker Hub & Docker Registry
허브에서는 이미지를 저장하고 관리해준다.
❗ 사용해보니 GitHub와 유사, push, pull 명령어 사용!! ❗
Docker Archtecture
❗ 내가 더 유심하게 봐야하는 부분은 "HOST", 왜냐면 내가 배포를 해야하니까!! ❗
'Container' 카테고리의 다른 글
[Docker] Docker Swarm (0) | 2021.09.11 |
---|---|
[Docker] Docker Machine (0) | 2021.09.11 |
[Docker] Docker Compose (0) | 2021.09.11 |
[Docker] Docker Engine (0) | 2021.09.11 |
[Docker] Docker 구조 (0) | 2021.09.11 |