DevOps/Docker
-
도커 정리DevOps/Docker 2023. 11. 10. 16:21
Docker 란? : 컨테이너 기반의 가상화 플랫폼 Container 란? : 응용 프로그램과 그 의존성을 격리된 환경에 묶어 동작할 수 있도록 하는 가상화 단위 Docker vs Virtual Machines Docker Container Virtual Machines - 운영체제와 시스템에 미치는 영향이 적다. - 빠르다. 최소한의 디스크 공간을 사용한다. - 공유, 재구축 및 배포하는 것이 매우 쉽다. - 앱에 필요한 모든 것을 캡슐화한다 - 운영 체제에 많은 영향을 미친다. - 속도가 느리고, 디스크 공간을 더 많이 차지하는 경향이 있다. - 공유, 재구축 및 배포가 도커보다 까다롭다. - 컴퓨터 전체를 캡슐화한다. (완전한 운영체제) * Docker Engine : 도커를 실행하는데 필요한 Li..
-
6. 컨테이너 오케스트레이션 - Docker Swarm & KubernetesDevOps/Docker 2023. 5. 31. 15:47
1. 컨테이너 오케스트레이션 - 프로덕션 환경에서 컨테이너를 호스팅하는 데 도움을 주는 도구와 스크립트로 구성 - 컨테이너 오케스트레이션 솔루션은 컨테이너를 호스팅할 수 있는 여러 개의 Docker 호스트로 구성된다. - 이렇게 하면 하나가 실패하더라도 다른 컨테이너를 통해 애플리케이션에 액세스할 수 있다. - 컨테이너 오케스트레이션 솔루션을 이용하면 수많은 애플리케이션 인스턴스를 명령어 하나로 간단히 배포할 수 있다. - 어떤 오케스트레이션 솔루션은 사용자가 늘어남에 따라 자동으로 인스턴스 수를 늘린다. - 수요가 감소하면 인스턴스 수도 함께 줄인다. - 심지어 사용자 로드 지원을 위해 자동으로 추가 호스트를 생성하는 솔루션도 있다. - 클러스터링과 스케일링에 국한되지도 않는다. - 다른 호스트에서 컨..
-
5. Docker Engine, Docker 스토리지 그리고 Docker 네트워킹DevOps/Docker 2023. 5. 14. 17:29
Docker Engine - Docker가 설치된 호스트 - Linux 호스트에 Docker를 설치하면 사실 컴포넌트가 세 개 설치된다. ㆍDocker CLI : 명령줄 인터페이스, 컨테이너 실행, 중지 및 이미지 제거 등에 사용된다. REST API를 사용하여 Docker Daemon과 상호 작용하는데 이때는 Docker CLI 가 반드시 같은 호스트에 없어도 된다. ㆍREST API : 프로그램이 쓰는 API 인터페이스로 Daemon과 통신하고 명령어를 제공할 때 사용 ㆍDocker Daemon : Docker 객체인 이미지와 컨테이너, 볼륨 및 네트워크를 관리하는 백그라운드 프로세스 - Docker는 Namespace로 공간을 구분하며, 프로세스 ID와 네트워크, 프로세스 간 통신, 마운트 및 Un..
-
4. Docker Compose & 5. Docker registryDevOps/Docker 2023. 5. 13. 17:50
- 다수의 서비스를 실행하는 복잡한 애플리케이션을 설정하기 위해서는 Docker Compose를 사용하는게 좋다. - Docker Compose로 YAML 형식의 구성 파일인 docker-compose.yml을 생성하고 여러 서비스를 파일에 실행하기 위한 옵션을 조합한다. - docker-compose up 명령어만 실행하기만 하면 애플리케이션 스택 전체를 불러올 수 있다. - 모든 변경 사항이 docker-compose.yml 이라는 구성 파일에 저장될 테니 실행하고 유지하기 수월한 대신에 하나의 Docker 호스트에 실행되는 컨테이너에만 사용할 수 있다. docker run -- link : 두개의 컨테이너를 연결하는 명령줄 옵션 ㆍ추후 Docker에서 지원 X ㆍDocker Swarm 과 네트워킹이..
-
3. Docker 이미지 [초보자를 위한 Doker 실습 - 데브옵스(DevOps)]DevOps/Docker 2023. 5. 12. 17:23
왜 이미지를 생성해야 하는가? - 애플리케이션에서 사용하려는 컴포넌트나 서비스를 Docker Hub에서 찾을 수 없기 때문에 혹은 개발 중인 애플리케이션을 도커화해서 배포가 쉽도록 만들고 싶기 때문이다. - 수동 설정 시 ㆍ1. OS - Ubuntu ㆍ2. Update apt repo ㆍ3. Install dependencies using apt ㆍ4. Install Python dependencies using pip ㆍ5. Copy source code to /opt folder ㆍ6. Run the web server using "flash" command - Docker는 구축한 계층을 전부 캐시에 저장한다. - Dockerfile 을 만들고 build 후 docker push를 하면 도커허브에서..
-
2. Docker 명령어 [초보자를 위한 Doker 실습 - 데브옵스(DevOps)]DevOps/Docker 2023. 5. 11. 18:07
1. 기본적인 Docker 명령어 docker run - docker run 명령어는 이미지로부터 컨테이너를 실행할 때 사용한다. - Docker 호스트에 해당 애플리케이션 인스턴스가 있다면 해당 인스턴스를 실행하고, 호스트에 이미지가 없다면 Docker Hub으로 이동해 이미지를 풀(pull) 한다. docker ps - docker ps 명령어는 실행되는 모든 컨테이너와 해당 컨테이너의 기본 정보를 나열한다. - 컨테이너 ID나 컨테이너 실행을 위해 사용되는 이미지의 이름, 현재 상태나 컨테이너 이름 등이 있다. - 각 컨테이너는 Docker에 의해 자동으로 생성된 임의의 ID나 이름을 갖는다. - -a 옵션을 이용하면 모든 컨테이너를 확인할 수 있다. ㆍ이미 멈췄거나 종료한 컨테이너까지 모두 출력한..
-
1. 소개 [초보자를 위한 Doker 실습 - 데브옵스(DevOps)]DevOps/Docker 2023. 5. 11. 14:24
1. Docker 개요 왜 도커가 필요한가? ㆍ1. 기초가 되는 운영 체제와의 호환성 문제 ㆍ2. 운영체제에 구성된 서비스 그리고 라이브러리와 의존성 간 호환성 - 지옥의 매트릭스(The Matrix from Hell) - 호환성 문제를 해결하고, 컴포넌트를 수정하거나 변경하면서도 다른 컴포넌트에 영향을 주지 않으면서 운영체제 수정 가능 - 각자의 의존성과 라이브러리를 갖춘 분리된 컨테이너를 활용해 같은 가상 머신과 운영 체제에서 환경과 컨테이너를 분리 컨테이너란 무엇일까? - 컨테이너란 완전히 분리된 환경으로 각자의 프로세스, 서비스 그리고 네트워크 인터페이스, 마운트를 가상 머신처럼 가지고 있지만 운영 체제 커널은 동일하다. - LXC, LXD, LXCFS 등이 있다. Docker는 그중 LXC 컨테..