> 운영 및 유지보수 > Docker > 도커 생태계란 무엇인가요?

도커 생태계란 무엇인가요?

青灯夜游
풀어 주다: 2022-06-06 14:26:19
원래의
3004명이 탐색했습니다.

생태계에는 다음이 포함됩니다. 1. 미리 작성된 Dockerfile을 위한 공식 리소스이며 공개 및 비공개 이미지 저장소를 제공하는 Docker Hub 2. 컨테이너를 실행하고 관리하는 데 사용되는 핵심 소프트웨어인 Docker Engine 4. 다양한 가상화 및 클라우드 서비스 제공업체가 로컬 프로젝트를 이동하고 확장할 수 있는 간단한 도구 세트를 제공하는 머신 및 스웜(Compose) 6. 클라우드

도커 생태계란 무엇인가요?

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

Docker는 독립적인 애플리케이션이나 기술 스택에 필요한 것만 포함하는 "컨테이너"를 만드는 도구입니다. 가상 머신과 달리 이러한 컨테이너는 동일한 리소스를 공유하여 컨테이너와 호스트 간의 상호 작용을 관리합니다. 이를 통해 Docker 컨테이너를 빠르고, 가볍고, 안전하고, 공유 가능하게 만듭니다.

현재 사용 가능한 Docker 생태계에는 Docker Hub, Docker Engine, Kitematic, Docker Machine, Swarm, Docker Compose, Dokcer Cloud 및 Data Center가 포함됩니다. 다음에서는 이러한 도구의 기능과 개선 방법을 자세히 소개합니다. 이러한 도구를 결합하십시오.

Docker Hub

Docker를 사용하는 모든 프로젝트의 핵심은 도커파일 파일. 이 파일에는 Docker가 이미지를 생성하는 방법에 대한 지침이 포함되어 있습니다. 간단한 예를 살펴보겠습니다.

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
로그인 후 복사

이 예에서 Dockerfile은 특정 버전의 기존 이미지를 가져오고, 현재 로컬 디렉터리를 컨테이너의 파일 시스템에 복사하고, 이를 작업 디렉터리로 설정한 다음, pip 명령을 통해 텍스트 파일에서 Python을 다운로드합니다. .

Docker Hub는 미리 작성된 Dockerfile을 위한 공식 리소스로, 공개(무료) 및 비공개(유료) 이미지 저장소를 제공합니다. 요구 사항에 맞는 Dockerfile을 찾고 있다면 먼저 Docker Hub에서 검색하고 프로젝트 문서, 다운로드 및 이미지 등급을 활용하여 결정을 내리는 데 도움을 받으세요.

도커 생태계란 무엇인가요?

Docker Engine

Docker Engine은 컨테이너를 실행하고 관리하는 데 사용되는 핵심 소프트웨어입니다. 사람들은 이를 단순히 Docker 또는 Docker 플랫폼이라고 부르는 경우가 많습니다. Docker 엔진은 API, 실행 드라이버, 런타임, shim 등과 같은 컨테이너를 생성하고 실행하기 위해 함께 작동하는 많은 특수 도구로 구성됩니다.

Docker 엔진은 Dockerfile 파일을 생성하고 이를 사용 가능한 컨테이너로 변환합니다. Docker 엔진은 Docker의 핵심입니다. Docker 엔진이 없으면 아무것도 실행할 수 없습니다. 운영 체제에 따라 Docker 엔진을 다운로드하는 방법에는 여러 가지가 있습니다. 여기에서 자세한 내용을 알아보세요.

Docker Hub에서 이미지를 기반으로 컨테이너를 열려면 먼저 이미지를 가져와서 실행해야 합니다. Python 예제를 계속 진행하면 다음과 같습니다.

docker pull python
docker run -it --rm --name script-name -v "$PWD":/usr/src/appname -w /usr/src/appname python:3 python app.py
로그인 후 복사

이렇게 하면 최신 Python 이미지를 가져온 다음 컨테이너를 열어 Python 스크립트를 실행하고 실행 후 컨테이너를 종료합니다. run 명령은 더 많은 옵션 설정을 제공합니다. 여기에서 전체 가이드를 읽어보세요.

Docker 실행 명령이 더 복잡해지기 시작하면 고유한 사용자 지정 Dockerfile을 만드는 것이 더 나은 아이디어일 수 있습니다. 로컬 Dockerfile을 기반으로 컨테이너를 시작하고 파일이 포함된 다음 디렉터리를 실행합니다.

docker build -t my_image .
로그인 후 복사

이 명령은 my_image라는 이미지를 생성합니다. 이 이미지를 기반으로 컨테이너를 시작하려면 다음 명령어를 실행하세요.

docker run -name my_image_container -i -t my_image
로그인 후 복사

이 명령은 사용자 정의 my_image 이미지를 기반으로 하는 컨테이너를 엽니다. 이 컨테이너의 이름은 my_image_container입니다.

Kitematic(Docker 시각적 관리 도구)

对于那些宁愿避免命令行的用户来说,  Kitematic  是一个 Docker GUI 工具,它可以更快速、更简单的运行Docker容器,现在已经支持 Mac /Windows/Linux。

搜索你需要的镜像,创建一个容器,你最好去Kitematic。Kitematic提供了基本的配置选项,但对于更高级的设置,你可能需要进入命令行。   

도커 생태계란 무엇인가요?

你的容器出现在左手边,在那里它们可以被启动、停止、重启,更有用的是,你可以在那里找到容器日志和直接SSH(exec按键)访问。   

도커 생태계란 무엇인가요?

Docker Machine和Swarm

生产中使用Docker的第一步是了解  Machine  和Swarm,它们为各种虚拟化和云服务提供商提供了一套简单的工具集用以移动和缩放他们的本地项目。  

“生产中使用Docker的第一步是了解Machine和Swarm。”  

例如,在Azure上创建一个Docker实例:  

docker-machine create -d azure --azure-subscription-id="XXX" --azure-subscription-cert="/mycert.pem" ecodemo
로그인 후 복사

这个命令使用预装的Docker创建一个Ubuntu 12.04-based虚拟机并命名为ecodemo。每个供应商都需要不同的参数和认证方法,这些默认设置可以被重写。在  这个文档  中可以阅读到更多的细节。   

当与  Swarm  结合后,Machine可以创建Docker实例的集群,这个集群被视为一个单一的、大的Docker实例。每一个Swarm集群都需要一个master实例,这个master实例可以用下面的命令来创建:  

docker-machine create
-d virtualbox
--swarm
--swarm-master
--swarm-discovery token://TOKEN_ID
swarm-master
로그인 후 복사

这样就会在VirtualBox中创建一个Docker实例并且设置这个Docker实例为Swarm集群的一个master节点。TOKEN_ID非常重要,因为它可以帮助集群中的所有节点识别彼此。除了手动创建TOKEN_ID标识以外,Swarm也有  发现系统  来帮助你管理这个过程。 

下面的命令使用相同的TOKEN_ID标识添加Docker实例到Swarm集群:  

docker-machine create
-d virtualbox
--swarm
--swarm-discovery token://TOKEN_ID
swarm-node-n
로그인 후 복사

swarm-node-n对于集群中的每一个节点来说都是一个唯一的名字。   

现在,代替从单个虚拟机中开启容器,你可以在集群中开启容器,master节点将会把这个容器分配给最可用的和最有能力的节点。 

Docker Compose

Compose  使得由多个组件(像容器)组成的应用程序更加简单,你可以开始使用一个命令在一个单一的配置文件中声明所有这些组件。   

下面是一个Compose文件(称为docker-compose.yml)的例子,这个例子创建三个  Crate  数据库实例和一个  Laravel  (用一些额外的配置)PHP框架实例。最重要的是,容器与Links配置选项相连。  

crate1:
image: crate
ports:
- "4200:4200"
- "4300:4300"
crate2:
image: crate
crate3:
image: crate
volumes:
- ./data:/importdata
laravelcomposer:
image: dylanlindgren/docker-laravel-composer
volumes:
- /laravel-application:/var/www
command: --working-dir=/var/www install
links:
- crate1
laravelartisan:
image: dylanlindgren/docker-laravel-artisan
links:
- crate1
volumes_from:
- laravelcomposer
working_dir: /var/www
command: serve --host=0.0.0.0:8080
ports:
- "8000:8000"
- "8080:8080"
로그인 후 복사

所有这些实例和它们的配置现在可以通过运行以下在同一目录中的docker-compose.yml文件的命令来开始:  

docker-compose up
로그인 후 복사

도커 생태계란 무엇인가요?

你可以使用相同的子命令作为Docker的命令来影响所有以docker-compose开始的容器。例如,docker-compose stop命令可以停止以docker-compose开始的容器。   

도커 생태계란 무엇인가요?

Docker Cloud

容器的自动化管理和编排是Docker的主要功能,但却一直由第三方服务来提供,直到去年Docker获得了  Tutum(它支撑着Docker云)  。虽然没有完整的命令行工具(还没有),Docker云服务允许Docker Compose文件设置应用程序栈,所以它不是来自于生态型的其它部分的一个大的导流。  

“容器的自动化管理是Docker的重要组成,但知道最近一直由第三方来提供。”  

例如:  

crate1:
image: crate
ports:
- "4200:4200"
- "4300:4300"
command: crate -Des.network.publish_host=_ethwe:ipv4_
crate2:
image: crate
command: crate -Des.network.publish_host=_ethwe:ipv4_
crate3:
image: crate
command: crate -Des.network.publish_host=_ethwe:ipv4_
로그인 후 복사

这样就创建了同一个镜像的三个实例,其中一个手动设置主机与Docker之间的端口分配,其他的端口分配是自动的。我将很快重新访问command。   

如果你想在超过一个节点(节点能够运行它可以管理的足够多的容器和一个私有仓库上扩展应用程序,Docker Cloud是有偿服务。这对于实验目的来说足够了。记住,Docker Cloud默认管理托管在第三方托管服务器上的容器,所以你也需要支付费用。使得Docker Cloud代理运行在任何你管理的Linux主机上是可能的,你可以  在这里找到操作指南  。   

도커 생태계란 무엇인가요?

上面的截图显示了三个使用预先设定的规则运行在跨越两个数字海洋的实例上的Docker容器,这个预先设定的规则是根据你设置的参数来将容器分配给主机。它会自动确保你指定数量的容器始终在运行。   

在之前的Docker Compose例子中,你可能已经注意到_ethwe:ipv4_。这是Docker Cloud的另外一个重要特征。许多分布式应用和服务依赖“  服务发现  ”来找到同一服务的其他实例并进行通信。当在数据中心和物理机器上传播服务时,这往往需要实例的手动说明或者需要另一种方式来找到彼此。   

Docker Cloud包括支持  Weave  在你的实际网络中创建一个“软”网络;所有的容器和应用都可以发现彼此,无论它们被托管在哪里。在上面的例子中,我们重写了向容器发出的默认命令,以确保它接收它需要使用此功能的信息。  

Data Center

到目前为止,本文涉及的大部分工具都是你安装,主机,和支持的工具。对企业用户来说,他们寻找安全性、性能和支持较高的保证,Docker提供了  数据中心  。   

它使用了覆盖这里的许多相同的工具包,但是增加了一个放置你的镜像的私有仓库,一个私有云,高级支持,和供应商可能吸引企业用户的第三方集成。这些包括LDAP and Active Directory用户管理,容器检测,和日志记录。  

推荐学习:《docker视频教程

위 내용은 도커 생태계란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿