Docker扩展Machinery、docker-sshd、docker-client、Wharf介绍

以下为你介绍的Docker扩展都可用在Linux系统上:Machinery(Docker Machine 集群管理)、docker-sshd(不需要容器启动 sshd)、docker-client(Docker 客户端 API)、Wharf(ContainerOps 平台)。

1、Machinery(Docker Machine 集群管理)

machinery 是一个用 Tcl 编写的命令行工具,用来对整个 Docker Machine 虚拟机集群进行操作。使用 YAML 定义集群来创建机器并进行启动、停止或者删除。machinery 对于 docker-machine 就像 docker-compose 对于 docker 一样。machinery 还提供 Docker Swarm 和 Swarm Mode,以及 Docker Compose 集成,它将自动安排创建的虚拟机加入群集集群,根据需要生成令牌,甚至管理要在集群上运行的多个组成项目的生命周期。machinery 可以将特定的项目文件自动带到它控制的计算机上,在启动组件之前,machinery 能够代替组合项目文件中的本地环境变量的值,与用于动态构建与网络相关的环境变量的约定一起,这为服务发现提供了一种简单的机制。简而言之,machinery 为您提供了整个集群的概览视图,包括构建集群的所有(虚拟)机器,应运行的所有组件以及在哪台机器上运行的集群,machinery 同时提供了命令行和 REST API,以便从其构建的中央控制点在群集上进行操作。

下载地址:https://github.com/efrecon/machinery

2、docker-sshd(不需要容器启动 sshd)

Docker扩展Machinery、docker-sshd、docker-client、Wharf介绍

docker-ssh 可以让你直接 ssh 到 docker 容器里边,并且不需要容器启动 sshd。

安装:

go get github.com/tg123/docker-sshd

例子:

1]、启动一个叫 CONTAINER1的容器:

docker run -d -t --name CONTAINER1 ubuntu top

bd78d93154cff5e8b40d19b1676670a49f582d2522384ecfe0d9e7d60846891e

2]、运行docker-sshd:

$GOPATH/bin/docker-sshd

3]、使用 CONTAINER1 作为用户名链接就可以使用了:

ssh CONTAINER1@127.0.0.1 -p 2232

root@bd78d93154cf:/#

下载地址:https://github.com/tg123/docker-sshd

3、docker-client(Docker 客户端 API)

docker-client 是用 Tcl 语言实现的 Docker 客户端 API。

该库提供了一个基于对象的API:您将获得一个与docker守护进程的连接的令牌,并且该令牌也是一个命令,您将用它执行大多数其他所有Tk风格的调用。

要获得令牌,请调用类似于以下内容的命令。请注意,当指定UNIX套接字时,该库将通过nc可执行文件来回传送所有命令。这是因为Tcl不支持UNIX套接字:

set docker [docker connect unix:///var/run/docker.sock]

要连接到正在侦听TCP连接的远程Docker守护程序,请执行类似于以下命令的操作:

set docker [docker connect tcp://localhost:2375]

要使用TLS连接到远程docker守护程序(这比上一个命令更有意义),请执行与以下命令类似的操作。诸如docker machine之类的工具会为您创建这些文件:

set docker [docker connect https://localhost:2376 -cert cert.pem -key key.pem]

下载地址:https://github.com/efrecon/tockler

4、Wharf(ContainerOps 平台)

Wharf 是一个关注 ContainerOps 的工具,它不是要取代传统的开发流程或者被广泛接受的 DevOps,它是 DevOps 的升级方案。Wharf 的目标是在在开发、持续集成和持续部署的广泛流程中使用 Container 技术构建一个工具链平台,支持 Docker 、Rocket 等多种 Container 运行期方案。

Wharf 目前只是 pre-release 一个早期版本,可以把它建设在局域网内,代替 Docker Registry 管理 Docker Repository 。目前只支持 Docker Registry V1 的协议,稍后会支持 V2 协议和 Rocket CAS。最终会集成另一个持续集成的项目 Vessel,努力构建完整的 ContainerOps 平台。

为了解决 Docker Registry 的证书问题,项目中提供了 containerops.me 的证书,在部署的时候可以直接使用证书或者是把证书用在 Nginx 上。

如何编译 Wharf:

把代码 Clone 到 $GOPATH/src/githhub.com/dockercn 路径:

go get -u github.com/astaxie/beego

go get -u github.com/codegangsta/cli

go get -u github.com/siddontang/ledisdb/ledis

go get -u github.com/garyburd/redigo/redis

go get -u github.com/shurcooL/go/github_flavored_markdown

go get -u github.com/satori/go.uuid

go get -u github.com/nfnt/resize

go build

Wharf 运行期设置:

在 wharf/conf 目录放置运行期文件 bucket.conf

runmode = dev

enablehttptls = true

httpsport = 443

httpcertfile = cert/containerops.me/containerops.me.crt

httpkeyfile = cert/containerops.me/containerops.me.key

gravatar = data/gravatar

[docker]

BasePath = /tmp/registry

StaticPath = files

Endpoints = containerops.me

Version = 0.8.0

Config = prod

Standalone = true

OpenSignup = false

[ledisdb]

DataDir = /tmp/ledisdb

DB = 8

[log]

FilePath = /tmp

FileName = containerops.log

[session]

Provider = ledis

SavePath = /tmp/session

Nginx 配置:

upstream wharf_upstream {

server 127.0.0.1:9911;

}

server {

listen 80;

server_name containerops.me;

rewrite  ^/(.*)$  https://containerops.me/$1  permanent;

}

server {

listen 443;

server_name containerops.me;

access_log /var/log/nginx/containerops-me.log;

error_log /var/log/nginx/containerops-me-errror.log;

ssl on;

ssl_certificate /etc/nginx/containerops.me.crt;

ssl_certificate_key /etc/nginx/containerops.me.key;

client_max_body_size 1024m;

chunked_transfer_encoding on;

proxy_redirect     off;

proxy_set_header   X-Real-IP $remote_addr;

proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header   X-Forwarded-Proto $scheme;

proxy_set_header   Host $http_host;

proxy_set_header   X-NginX-Proxy true;

proxy_set_header   Connection "";

proxy_http_version 1.1;

location / {

proxy_pass         http://wharf_upstream;

}

}

如何运行 Wharf:

运行在 Nginx 后面:

./wharf web --address 127.0.0.1 --port 9911

直接运行:

./wharf web --address 0.0.0.0 --port 80 

如果在配置文件中设置了 enablehttptls 为 true,那会自动运行在 443 端口:

./wharf web

注明

以上就是Docker扩展Machinery、docker-sshd、docker-client、Wharf的介绍内容,这些Docker扩展都能使用在Linux操作系统中。

栏目相关文章