-
Docker 정리혼자서 공부하기/DevOps 2020. 7. 23. 00:28728x90반응형SMALL
Docker?
정의
- 컨테이너 기반의 오픈소스 가상화 플랫폼
AWS에서의 정의
- 애플리케이션을 신속하게 구축/테스트/배포 할수 있는 소프트웨어 플랫폼
- Docker는 소프트웨어를 컨테이너 라는 표준화된 유닛으로 패키징 하며, 이 컨테이너에는 라이브러리/시스템도구/코드/런타임등 소프트웨어를 실행하는 데 필요한 모든것이 포함됨
- Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신가능
- Docker는 컨테이너를 위한 운영체제
- 가상머신(VM)이 서버하드웨어를 가상화하는 방식과 비슷하게 (직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영체제를 가상화 시킴
- Docker 작동 방식 : Docker는 코드를 실행하는 표준방식을 제공
인터넷검색에서
- 컴퓨터 안에 다른 공간과 분리된 '컨테이너'라는 가상의 공간을 만들어주는 프로그램
- 컨테이너를 통해 여러 환경을 관리할 수 있게 해주고 같은 셋팅의 환경을 공유하는 일도 이미지 파일 하나만 공유
Docker의 특징
- 운영체제를 가상화하지 않은 컨테이너 기술인 만큼 VM에 비해 가벼움
- VM을 포함 한대의 서버에 여러개의 서비스 구동 가능
- 보안상, 서비스가 털리더라도 원래의 서버에 영향을 미치지 쉽지 않은 격리된 구조인만큼, 가상화의 장점을 상당부분 활용가능
- VM과 달리 기존 리눅스자원(DISK/NETWORK 등)을 그대로 활용할 수 있어서 여러 서비스들을 한 서버에 넣어 돌리기 좋음
- 리눅스 커널 2.6.32~431이상에서 지원
- CentOS 기준 CentOS 6.5 이상 요구
- Docker를 사용해야 하는 이유 ( 폭넓게 도입되었다는 것은 Docker를 사용할 수 있는 도구 및 사용 어플리케이션 EcoSystem이 강력하다라는 의미)
- Docker를 사용하면 코드를 더 빨리 전달하고, 어플리케이션 운영을 표준화하고, 코드를 원활하게 이동하고 리소스사용률을 높여 비용절감 가능
- Docker를 사용하면 어디서나 안정적으로 실행할 수 있는 단일 객체를 확보 가능
- Docker의 간단한 구문을 사용해 완벽하게 제어 가능
Docker 이미지?
- 컨테이너를 정의하는 읽기 전용 템플릿
- 이 이미지에는 코드에 필요한 라이브러리 및 종속성에 대한 정의를 비롯해 실행되는 코드가 포함됨
- Docker 컨테이너는 인스턴스화된(실행되는) Docker 이미지
Docker Swarm vs Kubernetes
Docker Swarm Kubernetes Docker 에서 개발한 컨테이너 오케스트레이션 소프트웨어로 사용자가 직접 실행/관리 커뮤니티에서 유지관리
Docker와 VM 의 차이
- VM은 서버하드웨어를 가상화 (또는 직접관리할 필요성 제거)
- 컨테이너는 서버 운영체제를 가상화
- Docker는 컨테이너를 위한 운영체제 또는 런타임
- 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축/시작또는 중단하는데 사용할 수 있는 간단한 명령세트 제공
Docker 설치
- Mac
https://docs.docker.com/docker-for-mac/install/
- Windows :
https://docs.docker.com/docker-for-windows/install/
-
Ubuntu
sudo apt-get update sudo apt-get install docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
-
CentOS 6
sudo yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo yum install docker-io
-
CentOS 7
sudo yum install docker sudo service docker start sudo chkconfig docker on
728x90반응형LIST'혼자서 공부하기 > DevOps' 카테고리의 다른 글
배워서 남주자 시리즈 : Kubernetes 구축 (0) 2023.05.12 배워서남주자시리즈 : Kubernetes (k8s) 구조 (0) 2023.05.11 Ubuntu 22.04 + Jenkins (2.397+) 설치 (0) 2023.05.06 Ubuntu 22.04 + Jenkins (2.397+) 설치 (0) 2023.04.22 WINDOWS 10 에서 Docker Daemon Error 해결법 (0) 2020.12.23