首页
学习
活动
专区
圈层
工具
发布

harbor源码分析之容器编排脚本解析(四)

前边三篇文章对harbor项目的安装脚本进行展开说明.整个harbor项目将各个组件容器化,通过docker-compose编排工具进行容器编排.在本篇中将对docker-compose.yaml文件进行展开.

docker compose

Compose 是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

Compose 的使用方式非常简单

  • 定义 Dockerfile
  • 定义 docker-compose.yml
  • 运行 docker-compose up

安装docker compose

代码语言:shell
复制
$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

//自动补全
$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

docker compose原理

docker compose的底层是通过使用python调用docker提供的API实现.详细内容参考docker compose的用法.

有兴趣可以阅读其源码 docker-compose

在此看一个docker API最简单的demo

代码语言:javascript
复制
import docker
// 初始化docker client
client=docker.DockerClient('unix:///var/run/docker.sock', version='auto', timeout=5)

client.version()

详细内容请查阅python docker sdk

docker compsoe 就是基于以上SDK实现的.

对docker compose的介绍就到此.

harbor 容器组件

harbor的组件被定义在docker-compose.yaml文件中.一共定义了七个service

log: 用于统一日志处理

registry: docker image镜像存储

mysql: 业务数据存储

adminserver: harbor系统的管理

ui: 页面系统

jobservice: service任务

proxy: nginx代码

log组件统一收集其它六个组件的日志,在编排中有

代码语言:javascript
复制
logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

它用于将自身组件产生的log发送到syslog服务端组件中,进行日志的统一管理.

下一篇
举报
领券