Server

도커 사용법[1]

Raconer 2023. 4. 16. 23:45
728x90

개요

이제 슬슬 도커도 해볼때가 되었다.
아니 늦었다

Kubernetes와 Docker

  1. Docker란?(부두 노동자)
  • Docker는 애플리케이션 개발, 배송 및 실행을 위한 개방형 플랫폼입니다.
  • Docker를 사용하면
    • 애플리케이션을 인프라에서 분리하여 소프트웨어를 신속하게 제공할 수 있습니다.
    • 애플리케이션을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있습니다.
    • Docker의 방법론을 활용하면 코드 작성과 프로덕션에서 실행 사이의 지연 시간을 크게 줄일 수 있습니다.
  • 기본 개념
    • Container -> 배포하고 테스트하는 단위.
      • 느슨하게 격리된 환경
        • 애플리케이션을 실행 하는데 모든 요소를 포함 하므로 현재 호스트에 설치된것에 의존할 필요가 없다.
        • 주어진 호스트에서 동시에 많은 컨테이너를 실행할 수 있습니다.
    • Docker
      • Container의 수명 주기를 관리하기 위한 도구 및 플랫폼을 제공합니다.
  • Docker의 장점!
    1. 빠르고 일관된 애플리케이션 제공
    2. 반응형 배포 및 확장
    3. 동일한 하드웨어에서 더 많은 워크로드 실행
  • Docker Architecture
    • Docker는 클라이언트-서버 아키텍처를 사용합니다.
    • Docker 클라이언트는 Docker Container의를 빌드, 실행 및 배포하는 힘든 작업을 수행하는 Docker 데몬과 통신합니다.
    • Docker 클라이언트와 데몬은 동일한 시스템에서 실행하거나 Docker 클라이언트를 원격 Docker 데몬에 연결할 수 있습니다.
    • Docker 클라이언트와 데몬은 UNIX 소켓 또는 네트워크 인터페이스를 통해 REST API를 사용하여 통신합니다.
    • 또 다른 Docker 클라이언트는 컨테이너 세트로 구성된 애플리케이션으로 작업할 수 있는 Docker Compose입니다.
  • Docker 서비스?
  1. The Docker daemon/도커 데몬/dockerd

Docker API 요청을 수신하고 Image, Container, 네트워크 및 볼륨과 같은 Docker 개체를 "관리"합니다.
데몬은 다른 데몬과 통신하여 Docker 서비스를 관리할 수도 있습니다.

  1. The Docker client/도커 클라이언트/docker

많은 Docker 사용자가 Docker와 상호 작용하는 기본 방법입니다.
docker run과 같은 명령을 사용하면 클라이언트는 이러한 명령을 dockerd로 보내어 실행합니다.
docker 명령은 Docker API를 사용합니다.
Docker 클라이언트는 둘 이상의 데몬과 통신할 수 있습니다.

  1. Docker Desktop/도커 데스크탑

Mac, Windows 또는 Linux 환경을 위한 설치하기 쉬운 애플리케이션으로 컨테이너화된 애플리케이션 및 마이크로서비스를 구축하고 공유할 수 있습니다.
Docker Desktop에는 Docker 데몬(dockerd), Docker 클라이언트(docker), Docker Compose, Docker Content Trust, Kubernetes 및 Credential Helper가 포함됩니다. 자세한 내용은 도커 데스크톱을 참조하세요.

  1. Docker registries/도커 레지스트리

Docker 이미지를 저장합니다.
Docker Hub는 누구나 사용할 수 있는 공개 레지스트리이며 Docker는 기본적으로 Docker Hub에서 이미지를 찾도록 구성되어 있습니다.
개인 레지스트리를 실행할 수도 있습니다.
구성된 필수 이미지 가져오기 : docker pull 또는 docker run
이미지가 구성된 레지스트리로 푸시 : docker push

  1. Docker objects/도커 객체

Docker를 사용하면 Image, Container, 네트워크, 볼륨, 플러그인 및 기타 객체를 생성하고 사용합니다.
이 섹션에서는 이러한 개체 중 일부에 대해 간략하게 설명합니다.

  1. Images/이미지

Docker Container 생성 지침이 포함된 읽기 전용 템플릿입니다.
다른 Image 기반으로 사용가능
예를 들어 Ubuntu Image를 기반으로 하는 Image를 빌드 할수 있지만, Apache 웹 서버와 어플리케이션은 물론 애플리케이션 세부 정부도 설치를 할수 있습니다.
자신이 만든 Image와 다른 사람이 만든 Image를 만들수 있습니다.
고유한 Image를 빌드 하려면 Image를 만들고 실행 하는데 필요한 단계를 정의 한 Dockerfile을 만들어서 사용합니다.
Dockerfile을 변경하고 이미지를 다시 빌드 하면 변경된 레이어만 다시 빌드 됩니다.
이 것이 Docker를 가볍고 작고 빠르게 만드는 기술 중에 하나이다.

  1. Container/콘테이너

Image의 실행 가능한 Instance입니다.
Docker API 또는 CLI를 사용하여 Container를 생성, 시작, 중지, 이동 또는 삭제를 할수있습니다.
Container를 하나 이상의 네트워크에 연결 하거나 스토리지를 연결 하거나 현재 상태 기반으로 새 이미지를 생성할 수 있습니다.
기본적으로 Container는 다른 Container, Host시스템과 격리가 잘되어 있지만 네트워크, 스토리지 기타 기본 하위 시스템의 격리 정도를 제어 할수 있습니다.
Container는 생성, 시작 할때 제공하는 구성 옵션과 Image로 정의 됩니다.
Container가 제거 되면 영구 저장소에 저장되지 않은 상태 변경 사항이 모두 사라집니다.

  1. ETC

Docker는 Go 프로그래밍 언어로 작성되었으며 Linux 커널의 여러 기능을 활용하여 기능을 제공합니다.
Docker는 네임스페이스라는 기술을 사용하여 컨테이너라는 격리된 작업 공간을 제공합니다.
컨테이너를 실행하면 Docker는 해당 컨테이너에 대한 네임스페이스 세트를 생성합니다.
이러한 네임스페이스는 격리 계층을 제공합니다.
컨테이너의 각 측면은 별도의 네임스페이스에서 실행되며 액세스는 해당 네임스페이스로 제한됩니다.

참고


Docker 공식 홈페이지
Kubernetes와 Docker 비교

728x90

'Server' 카테고리의 다른 글

Docker 공부 하면서 주로 사용하는 명령어  (0) 2023.04.16
도커 사용법[2]  (0) 2023.04.16
Was VS Ws  (0) 2023.04.16
이미지 최적화  (0) 2023.04.16
Cookie vs LocalStorage vs SessionStorage  (0) 2023.04.16