Docker Remote API 开发(一)

存储架构 2016-10-20 阅读原文

基本常见的Docker Control Panel 都是收费的,所以手贱打算自己弄一个玩,技术栈:

预期效果图:

因为我机器是使用Docker Machine创建,所以默认已经从Unix socket转发到了tcp port,如果是自己配置,需要在node节点上修改配置文件:

root@node-1:~# cat /etc/default/docker

DOCKER_OPTS='
-H tcp://0.0.0.0:2376
-H unix:///var/run/docker.sock
--storage-driver aufs
--tlsverify
--tlscacert /etc/docker/ca.pem
--tlscert /etc/docker/server.pem
--tlskey /etc/docker/server-key.pem
--label provider=aliyunecs

'

这里注意一下-H 就是转发的配置了,另外还有tls的验证选项,详细配置请看文档:

使用Docker Remote API v1.24,调用远程接口测试:

curl -v -k -E https://{SERVER_IP}:2376/images/json 
  --cert ~/.docker/machine/machines/hz-1/cert.pem 
  --key ~/.docker/machine/machines/hz-1/key.pem 
  --cacert ~/.docker/machine/machines/hz-1/ca.pem

可以拿到数据:

[
    {
        "Id":"sha256:6ff756f6fc44903216bf36e941db37ed5bb707c533c9c07e513d02fc7dfad4ad",
        "ParentId":"",
        "RepoTags":[
            "redis:3.2.3-alpine"
        ],
        "RepoDigests":[
            "redis@sha256:fe846dd3decd53475c7f6b007ccf10834bdd60d3a649ebdb69f43aa10393e80f"
        ],
        "Created":1474338745,
        "Size":20379436,
        "VirtualSize":20379436,
        "Labels":{

        }
    }
]

待续。

---------分割线---------

curl问题:

OS X: Using PEM private keys fail with error: OSStatus -25299

找到解决方法:

For anyone else getting to this issue when searching for "OSStatus -25299", this is how to convert a pem + cert to pkcs12..

openssl pkcs12 -export -in ./client.crt -inkey ./client.pem -out client.p12

where client.crt is your cert, client.pem is your private key, and client.p12 is your new password encrypted cert/key pkcs12 container.

With that I was able to use curl correctly with something like:
curl -v -k -E ./client.p12:password http://url

更简单的:

or just install curl with openssl support:

$ brew install curl --with-openssl
$ brew link curl --force
$ brew --version
curl 7.50.1 (x86_64-apple-darwin15.6.0) libcurl/7.50.1 OpenSSL/1.0.2h zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
(Note: You will probably need to run brew uninstall curl if you have another version of cURL installed using Brew.)

原贴地址:

OS X: Using PEM private keys fail with error: OSStatus -25299 · Issue #283 · curl/curl · GitHub

苏依蜀黍de小木屋

责编内容by:苏依蜀黍de小木屋阅读原文】。感谢您的支持!

您可能感兴趣的

陌陌基于K8s和Docker容器管理平台的架构实践... 【51CTO.com原创稿件】容器集群管理系统与容器云平台的选择非常重要,因为容器管理系统是否先进智能、容器云管理平台是否灵活易用且高效,直接影响企业开发运维的效率与速度、资源利用率的高低。在这个竞争激烈,风云突变的时代,应用的开发效率、稳...
用ASP.NET Core 2.1 建立规范的 REST API — 缓存和并发... 本文所需的一些预备知识可以看这里: http://www.cnblogs.com/cgzl/p/9010978.html 和 http://www.cnblogs.com/cgzl/p/9019314.html 建立Ric...
资源控制在大数据和云计算平台中的应用... 在大数据迅速发展的今天,很大一部分支持来自于底层技术的不断发展,其中非常重要的一点就是系统资源的管理和控制, 大数据平台 的核心就是对资源的调度管理,在调度和管理之后如何对这些资源进行控制便成了另一个重要...
使用 Hugo 生成 API 接口 随着 SSG 静态生成工具的蓬勃发展,市面上能看到越来越多的静态站点,一般的使用方法是通过静态展点生成工具生成静态页面,然后进行发布。 我个人使用了一年多的 Hugo ,不论是稳定性还是易用性方面,都无愧于开源社区里...
Swagger 规范接口的文档型 API UI 界面 主要使用 Vue CLI 3,iView 开发,主要体现文档的可读性功能,给接口调用者提供接口文档,省去文档编写。 Github & Issues: https://github.com/cn-src/swagger...