도커 개요
Docker 란?
도커에 대한 설명글은 정리를 잘 해놓은 수많은 글들이 있어서 참고 문서를 정리합니다.
- subicura, "초보를 위한 도커 안내서", https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
이 외에도 RedHat, AWS, Microsoft 등 기술 블로그에서 잘 소개되어 있습니다.
- 공식 문서: docker, https://docs.docker.com/get-started/overview/
Docker Engine
- 리눅스(CentOS, Debian, Fedora, Oracle Linux, RHEL, SUSE, Ubuntu) 또는 Windows Server에서 사용 가능
- 세가지 구성 요소
- 서버 : dockerd 라는 docker 데몬. 도커 이미지를 만들고 관리 할 수 있다. 컨테이너, 네트워크 등
- Rest API : 도커 데몬에게 무엇을 할지 지시하는 데 사용한다.
- CLI (Command Line Interface) : 도커 명령 을 입력하는 데 사용되는 클라이언트 .
Docker Registry
Docker 이미지가 저장된 위치 입니다. Github에서 Repo 를 public/private으로 만드는 개념과 유사하게 사용할 수 있습니다. Docker hub는 공용 레지스트리인 docker 이미지의 기본 위치 입니다.
Docker Architecture
Docker Objects
Docker로 작업할 때 사용하는 구성 요소들
Images
도커 이미지는 도커 컨테이너를 만드는 지침에 포함 된 읽기 전용 템플릿입니다. Docker 이미지는 Docker Hub에서 가져 와서 그대로 사용하거나 기본 이미지에 추가 지침을 작성해 새롭게 수정된 이미지를 만들 수 있습니다. dockerfile
에 고유 이미지를 만들기 위한 요구 사항을 작성합니다.
Docker 이미지는 기본 레이어가 있고, 읽기 전용이며 최상위 레이어를 가져다가 사용할 수 있습니다. 도커 파일을 편집하고 다시 작성해도 수정된 부분만 다시 작성됩니다.
Containers
도커 이미지를 실행하면 도커 컨테이너가 생성됩니다. 모든 애플리케이션과 설정 환경은 컨테이너 내에서만 실행됩니다. Docker API 혹은 CLI를 사용해 docker 컨테이너를 시작, 중지, 삭제할 수 있습니다.
우분투 도커 컨테이너를 실행하는 샘플 명령
docker run -i -t ubuntu /bin/bash
Volumes
docker가 생성하고 컨테이너가 사용하는 데이터는 볼륨에 저장됩니다. 볼륨의 내용은 컨테이너 수명주기 외부에 존재하므로 볼륨을 사용해도 컨테이너 크기가 커지지 않습니다.
-v
또는 -mount
플래그를 사용해 볼륨이 있는 컨테이너를 시작할 수 있습니다.
명령어 예시
docker run -d --name sample -v samplevolume:/app nginx:latest
Networks
도커 네트워킹은 서로 격리되어 있는 컨테이너가 통신하는 통로입니다. 5개의 주요 네트워크 드라이버가 있습니다.
- Bridge: 컨테이너의 기본 네트워크 드라이버. 응용 프로그램이 독립형 컨테이너(예: 동일한 도커 호스트와 통신하는 여러 컨테이너)에서 실행될 때 이 네트워크를 사용함.
- Host: 도커 컨테이너와 도커 호스트 간의 네트워크 격리를 제거함.
- Overlay: 네트워크를 통해 Swarm 서비스가 서로 통신할 수 있음. 컨테이너가 다른 Docker Host에서 실행 중이거나 Swarm 서비스가 여러 애플리케이션에 의해 형성될 때 사용함.
- None: 모든 네트워킹을 비활성화 함.
- macvlan: 컨테이너에 물리적 주소처럼 보이도록 mac 주소를 할당함. 트래픽은 컨테이너 간 mac 주소를 통해 라우팅 됨. 예를 들어 VM 설정을 마이그레이션 하는 동안 컨테이너를 물리적 장치처럼 보이게 하려는 경우 사용함.
Docker 튜토리얼 및 연습
- docker, https://www.docker.com/play-with-docker
- Udemy 추천 강의: Docker Mastery
- 초보를 위한 Docker Tutorials 10가지, https://geekflare.com/docker-tutorials/
Reference
- docker, (July 13, 2020), https://docs.docker.com/get-started/overview/
- geekflare, (July 13, 2020), https://geekflare.com/docker-architecture/
'📒 Tech Note > Cloud' 카테고리의 다른 글
OpenShift 개요 (0) | 2020.07.15 |
---|---|
OpenStack(오픈 스택)이란? (0) | 2020.07.15 |
Kubernetes 개요 및 참고자료 (0) | 2020.07.15 |
컨테이너 (Containers) ? (0) | 2020.07.14 |
클라우드 컴퓨팅이란? (0) | 2020.07.14 |