PaaS系统/容器unistore、container-diff、Pouch、docker-lnp介绍

以下为你介绍的PaaS系统/容器都可用在Linux系统上:unistore(微型集中式状态容器)、container-diff(容器镜像分析对比工具)、Pouch(阿里巴巴容器技术)、docker-lnp(封装了 Nginx+php7-fpm 的 Dockerfile 仓库)。

1、unistore(微型集中式状态容器)

unistore 是一个微型(650B)的集中式状态容器。

特性:

非常小却很好地遵循了 Preact 的步伐。

类似 Redux 的熟悉的命名和思路。

有用的数据选择器,可从状态中提取属性。

便携式的操作,可移动到一个通用的地方并导入。

简化是唯一目标。

Usage:

import { Provider, createStore, connect } from 'unistore'

let store = createStore({ count: 0 })

// If actions is a function, it gets passed the store:

let actions = store => ({

// Actions can just return a state update:

increment(state) {

return { count: state.count+1 }

},

// The above example as an Arrow Function:

increment2: ({ count }) => ({ count: count+1 }),

// Async actions can be pure async/promise functions:

async getStuff(state) {

let res = await fetch('/foo.json')

return { stuff: await res.json() }

},

// ... or just actions that call store.setState() later:

incrementAsync(state) {

setTimeout( () => {

store.setState({ count: state.count+1 })

}, 100)

}

})

const App = connect('count', actions)(

({ count, increment }) => (

<div>

<p>Count: {count}</p>

<button onClick={increment}>Increment</button>

</div>

)

)

export default () => (

<Provider store={store}>

<App />

</Provider>

)

下载地址:https://github.com/developit/unistore

2、container-diff(容器镜像分析对比工具)

container-diff 是 Google 开源的一个分析和比较容器镜像的工具,可用来分析 Docker 镜像之间的差异。

container-diff 可通过几个不同的标准(角度)来检查镜像,包括:

Docker 镜像历史、镜像文件系统、Apt 包管理器、pip 包管理器、npm 包管理器。

Installation:

macOS:

curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-darwin-amd64 && chmod +x container-diff-darwin-amd64 && sudo mv container-diff-darwin-amd64 /usr/local/bin/container-diff

Linux:

curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-linux-amd64 && chmod +x container-diff-linux-amd64 && sudo mv container-diff-linux-amd64 /usr/local/bin/container-diff

不想使用 sudo 的话还可以这样:

curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-linux-amd64 && chmod +x container-diff-linux-amd64 && mkdir $HOME/bin && export PATH=$PATH:$HOME/bin && mv container-diff-linux-amd64 $HOME/bin/container-diff

Windows:

下载 container-diff-windows-amd64.exe 文件,重命名为 container-diff.exe 并将其添加到路径。

Quickstart:

单个分析:

container-diff analyze <img>     [Run default analyzers]

container-diff analyze <img> --type=history  [History]

container-diff analyze <img> --type=file  [File System]

container-diff analyze <img> --type=pip  [Pip]

container-diff analyze <img> --type=apt  [Apt]

container-diff analyze <img> --type=node  [Node]

container-diff analyze <img> --type=apt --type=node  [Apt and Node]

# --type=<analyzer1> --type=<analyzer2> --type=<analyzer3>,...

多个对比:

container-diff diff <img1> <img2>     [Run default differs]

container-diff diff <img1> <img2> --type=history  [History]

container-diff diff <img1> <img2> --type=file  [File System]

container-diff diff <img1> <img2> --type=pip  [Pip]

container-diff diff <img1> <img2> --type=apt  [Apt]

container-diff diff <img1> <img2> --type=node  [Node]

下载地址:https://github.com/GoogleContainerTools/container-diff

3、Pouch(阿里巴巴容器技术)

PaaS系统/容器unistore、container-diff、Pouch、docker-lnp介绍

2017年杭州云栖大会中,阿里巴巴正式宣布,自主研发的容器技术 Pouch 将以开源的形式回馈社区,希望与开发者共同推动中国容器技术发展,共建容器生态。

阿里Pouch并不是一个完全创新的技术。最早,阿里基于LXC技术为集团业务提供容器服务,2011年,阿里自研容器技术T4,2016年,阿里内部将容器技术重新命名为Pouch,并已经实现支持集团内部大量核心业务,比如电商平台核心业务、主要应用和部分数据库、蚂蚁金服的支付业务,淘宝网的交易业务等等。

关于Pouch的命名由来,源于阿里作为开放赋能者,注重用户场景应用的初衷。正如阿里巴巴技术专家孙宏亮所言,Pouch作为从阿里巴巴集团内部大规模场景自研技术,相比docker、rkt等容器技术,差异化的核心价值体现在以下几个方面:

富容器技术:容器内部的应用体验如虚拟机般,拥有init进程,且富含系统服务;

丰富的隔离保障:隔离安全避无可避,内核加固与轻量级虚拟机支持,丰富隔离维度;

P2P镜像分发:超大规模场景下的镜像分发,P2P的方式缓解网络负载;

内核兼容性:企业内核的升级往往较为缓慢,最大限度适配现有底层基础设施。

下载地址:https://github.com/alibaba/pouch

4、docker-lnp(封装了 Nginx+php7-fpm 的 Dockerfile 仓库)

docker-lnp 是一个封装了 Nginx+php7-fpm 以及多数常用的 php 扩展的 Dockerfile 仓库,旨在快速构建基于 Docker 的 LNMP 环境。

特性:

1],自定义 Nginx, PHP-FPM, PHP 相关配置文件,完全定制。

2],Docker 内采用 supervisor 管理 Nginx,FPM 进程,方便内部重启调试,统一管理。

3],直接在 Dockerfile 中通过 RUN 命令执行 shell 命令来控制系统设置。

4],通过 docker-compose 控制整个容器环境,可深度定制。

5],Nginx采用官方stable-alpine稳定版,容器体积小且稳定。

6],PHP版本跟随清华镜像源,升级更方便。

7],代码简单,通俗易懂,流程清晰。

版本说明:

Alpine: 3.5、PHP: 7.1、Nginx: 1.12.1、Docker-compose: 3。

使用方式:

step1、构建镜像:

cd <docker-lnp dir>

sudo docker-compose build

这里可能得需要一段时间,因为需要下载一些需要的包。

step2、查看镜像:

sudo docker images

如果没有错的话,上面的命令会显示出来刚刚构建好的镜像。

step3、运行镜像:

sudo docker-compose up -d

-d 指定后台运行,也可以省略,则容器运行在前台。

step4、测试:

sudo docker ps

sudo docker inspect <container_id>

通过上面的命令找到映射IP,然后在本地通过IP或配置hosts文件来访问,注意代码位置需要通过Dockerfile中的卷映射出来。

step5、调试,如果需要的话:

sudo docker ps

sudo docker exec -it <container_id> bash

容器内部的Alpine linux系统提供一个bash环境,可进入到系统内部方便调试环境,重启则可通过 supervisorctl

说明:

该仓库的Dockerfile仅封装了Nginx和FPM,不包含Mysql

建议通过 docker-compose 来定义容器环境

该仓库提供的 docker-compose.yml 中定义了容器链接 Mysql 的方式。

下载地址:https://gitee.com/koma/docker-lnp

注明

以上就是PaaS系统/容器unistore、container-diff、Pouch、docker-lnp的介绍内容,这些PaaS系统/容器都能使用在Linux操作系统中。

栏目相关文章