>운영 및 유지보수 >Docker >docker의 삼총사는 무엇을 의미하나요?

docker의 삼총사는 무엇을 의미하나요?

青灯夜游
青灯夜游원래의
2021-11-25 17:42:536152검색

docker의 세 검객은 떼, 구성, 기계를 의미합니다. Compose는 하나 이상의 컨테이너와 애플리케이션을 정의하고 실행하는 데 사용되는 도구이고, Machine은 Docker 설치를 단순화하는 명령줄 도구이며, Swarm은 Docker 클러스터를 기본적으로 지원하는 커뮤니티에서 제공하는 도구입니다.

docker의 삼총사는 무엇을 의미하나요?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.

도커 컨테이너에 있는 검객 세 명은 떼, 구성, 기계입니다.

Compose

1. 개요

실제 프로덕션 환경에서 애플리케이션은 많은 서비스로 구성되는 경우가 많으며, Docker의 모범 사례는 컨테이너가 하나의 프로세스만 실행하므로 여러 마이크로서비스를 실행하는 것입니다. 여러 컨테이너를 실행합니다. 여러 컨테이너가 함께 작동하려면 이를 관리하고 이러한 컨테이너가 서로 어떻게 관련되는지 정의하기 위한 효과적인 도구가 필요합니다. 작곡이 탄생했습니다.

compose는 실행하고 적용할 하나 이상의 컨테이너(일반적으로 여러 개)를 정의하고 실행하는 데 사용되는 도구입니다. Compose를 사용하면 컨테이너 이미지 구성과 컨테이너 실행이 단순화될 수 있습니다.

compose는 YAML 파일을 사용하여 여러 컨테이너 간의 관계를 정의합니다. docker-compose up은 전체 애플리케이션을 실행할 수 있습니다. 기본적으로 Compose는 YAML 파일을 docker 명령의 매개변수로 구문 분석한 다음 해당 docker 명령줄 인터페이스를 호출하여 애플리케이션을 컨테이너화된 방식으로 관리합니다. 컨테이너 간의 종속성을 해결하여 컨테이너를 순차적으로 시작합니다. 컨테이너 간의 종속성은 YAML 파일의 links 태그로 지정됩니다. docker-compose up 就可以把完整的应用跑起来。 本质上, compose 把 YAML  文件解析成 docker 命令的参数,然后调用相应的 docker 命令行接口,从而将应用以容器化的方式管理起来。它通过解析容器间的依赖关系顺序地启动容器。而容器间的依赖关系由 YAML 文件中的 links 标记指定。

2. compose 配置简介

Compose 是对 docker 命令的封装,默认使用 docker-compose.yml 文件指定各个命令中的参数。
一个简单的例子:

web:
  build: .
  ports:
  - 8080:80
  volumes:
  - . : /code
  links:
  - redis
redis:
  image: redis

这个 YAML 文件定义了两个服务: Web 和 Redis, 服务的名称由用户自定义。提供 Web 服务的镜像从 Dockerfile 构建; Web 服务监听80端口,并和主机的8080端口建立映射;主机的当前目录挂载到容器里的 /code 目录上;Web 服务器通过链接 Redis 容器来访问后台 Redis 数据库。而 Redis 数据库服务是通过运行 Redis 镜像来提供的。

在 docker-compose.yml 文件中,每个定义的服务都至少包含 buildimage 其中之一,其他命令都是可选的。 build 命令指定了包含 Dockerfile 的目录,可以是相对目录也可以是绝对目录。

docker-compose.yml 文件中的 "ports" 标记对应于 docker run 的 "-p"选项; "volumes"标记对应 docker run 的 "-v" 选项; "links" 标记对应 docker run 的 "--links"选项。

此外,image 用于指定服务的镜像。

最后,在 docker-compose.yml 所在的目录下执行 docker-compose up

2. Compose 구성 소개

Compose는 docker 명령

의 캡슐화입니다. 기본적으로 docker-compose.yml 파일은 각 명령의 매개변수를 지정하는 데 사용됩니다.

간단한 예:

rrreee

이 YAML 파일은 웹과 Redis라는 두 가지 서비스를 정의합니다. 서비스 이름은 사용자가 정의합니다. 웹 서비스를 제공하는 이미지는 Dockerfile에서 빌드됩니다. 웹 서비스는 포트 80을 수신하고 이를 호스트의 포트 8080에 매핑합니다. 호스트의 현재 디렉터리는 웹 서버가 액세스하는 /code 디렉터리에 마운트됩니다. Redis 컨테이너에 연결하여 백엔드 Redis 데이터베이스. Redis 데이터베이스 서비스는 Redis 이미지를 실행하여 제공됩니다.

docker-compose.yml 파일에서 정의된 각 서비스에는 build 또는 image 중 하나 이상이 포함되어 있으며 다른 명령은 선택 사항입니다. 빌드 명령은 Dockerfile이 포함된 디렉터리(상대 디렉터리 또는 절대 디렉터리)를 지정합니다.

docker-compose.yml 파일의 "ports" 태그는 docker run의 "-p" 옵션에 해당합니다. "volumes" 태그는 docker run의 "-v" 옵션에 해당합니다. docker run link의 "--" 옵션에 추가합니다. docker의 삼총사는 무엇을 의미하나요?

또한 image는 서비스의 이미지를 지정하는 데 사용됩니다.

마지막으로 docker-compose.yml이 있는 디렉터리에서 docker-compose up 명령을 실행하면 웹 서비스와 Redis 서비스가 모두 성공적으로 실행됩니다. Machine

1. 개요


Docker Machine은 Docker 설치를 단순화하는 명령줄 도구입니다. Docker는 간단한 명령줄을 통해 해당 플랫폼에 설치할 수 있으며, 사용자에게 어떤 호스트에서든 Docker 컨테이너를 실행할 수 있도록 유연한 기능을 제공합니다. 간단히 말해서 Docker Machine은 Docker 호스트와 구성된 Docker 클라이언트의 조합입니다.

🎜기술적으로 말하면 Machine은 프레임워크이며 상대적으로 개방적입니다. 가상 머신 서비스를 제공하는 모든 플랫폼에 대해 플랫폼용 드라이버가 이 프레임워크에서 개발되는 한 Docker Machine은 플랫폼에 통합되어 플랫폼에서 생성, 삭제, 시작 및 중지와 같은 작업을 수행할 수 있습니다. 🎜🎜Docker Machine의 아키텍처는 그림과 같습니다🎜🎜🎜🎜🎜🎜🎜2. Machine의 기본 개념 및 프로세스🎜🎜🎜🎜Docker Machine은 먼저 가상 머신을 생성하고 그 위에 Docker 호스트를 생성한 다음 이를 사용합니다. Docker 클라이언트 Docker 호스트와 통신하여 Docker 호스트에 이미지를 생성하고 컨테이너를 시작합니다. 🎜🎜Docker Machine을 사용하여 가상 머신을 생성하는 경우 해당 드라이버를 개발해야 합니다. 현재 이 머신을 지원하는 드라이버에는 Windows용 VirtualBox 드라이버, VMware 드라이버 및 Hyper-V 드라이버가 포함됩니다. 또한 Machine은 클라우드 호스트 생성도 지원합니다. 프레임워크 사양을 준수하는 드라이버가 개발되면 Docker Machine은 해당 플랫폼을 지원할 수 있습니다. 🎜🎜Machine이 생성한 Docker 호스트의 IP 주소는 생성된 가상 머신의 IP 주소입니다. 🎜Docker Machine과 VirtualBox 드라이버를 사용하여 로컬 가상 머신을 생성하고 Docker 호스트를 구축하는 과정은 다음과 같습니다. 🎜
  • docker-machine create --driver virtualbox dev 명령을 실행하세요. 이 명령은 먼저 Docker 클라이언트와 Docker 호스트 간의 통신을 위한 CA 인증서를 생성합니다. 다음으로 VirtualBox 가상 머신을 생성하고, 통신을 위한 TLS 매개 변수를 구성하고 네트워크를 구성한 후 마지막으로 Docker 운영 환경, 즉 Docker 호스트를 배포합니다. docker-machine create --driver virtualbox dev命令。此命令首先创建用于 Docker client 和 Docker host 通信用的 CA 证书。 其次创建 VirtualBox 虚拟机, 并配置用于通信的 TLS 参数及配置网络, 最后部署 Docker 的运行环境 即 Docker host。

  • 在 Docker client 里运行 eval "$(docker-machine env dev)"

  • Docker 클라이언트에서 eval "$(docker-machine env dev)" 명령을 실행하여 Docker 호스트 통신에 사용되는 환경 변수를 구성합니다.

docker 관련 명령을 사용하여 해당 컨테이너를 생성하거나 시작하세요.

Swarm

1. 개요


Swarm은 Docker 클러스터를 기본적으로 지원하는 Docker 커뮤니티에서 제공하는 도구입니다. 여러 Docker 호스트로 구성된 시스템을 단일 가상 Docker 호스트로 변환할 수 있습니다. Swarm은 외부 세계에 두 가지 API를 제공합니다. 하나는 Dokku, Compose, Krane, Flynn, Deis, Jenkins 등과 같은 표준 Docker API이고, 다른 하나는 클러스터 관리에 사용되는 Swarm의 클러스터 관리 API입니다.

Swarm 도구 자체는 아직 성숙되지 않았으며 프로덕션 환경에서는 사용하지 않는 것이 좋습니다.

그리고 Google의 오픈소스 Kubernetes는 현재 컨테이너 생태계에서 가장 널리 사용되는 조정 및 배포 도구입니다.
Kubernetes의 아키텍처는 여러 Minion 노드가 있는 마스터 서버를 기반으로 합니다. 아직 K8s를 접해본 적은 없습니다. 좀 더 알아보고 정리하겠습니다.

K8s 아키텍처 블록 다이어그램docker의 삼총사는 무엇을 의미하나요?

  • 구성 요소 설명:
  • 마스터: 마스터 서버, API 서비스, 백업 컨트롤러 및 스케줄러 등을 포함한 kebernetes 관리 프로세스 실행
  • Minion: Kubelet 서비스 및 Docker 엔진의 호스트입니다. Minion은 마스터의 지시를 받아들입니다.
  • Kubelet: Minion에서 실행되는 Kubernetes 노드 수준 관리자
  • Pod: 여러 컨테이너의 모음이며 이러한 컨테이너는 동일한 Minions에서 실행됩니다. . Pod는 K8s의 가장 작은 관리 단위입니다
  • Replication Controller: Pod의 수명 주기를 관리합니다
  • Service: 컨테이너를 노출할 수 있는 서비스와 포트를 정의하고 통신 및 상호 작용을 위한 외부 에이전트를 정의합니다

Kubecfg: 명령 라인 인터페이스, 마스터와 상호 작용, 애플리케이션 비즈니스 배포 및 관리 요청

추천 학습: "🎜docker 비디오 튜토리얼🎜"🎜

위 내용은 docker의 삼총사는 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.