• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > Mac OSX系统 Docker启用Docker远程API功能

Mac OSX系统 Docker启用Docker远程API功能

作者: 字体:[增加 减小] 来源:互联网

本文主要包含Mac,OSX系统,Docker启用Docker远程等服务器相关知识,希望可以进行参考

在Mac OSX系统的Docker机上启用Docker远程API功能

Docker守护进程提供了一套远程REST API,具体可以参考文档:

https://docs.docker.com/engine/reference/api/docker_remote_api/

这套API是提供给客户端与Docker引擎通信时使用,这套API也可以由其他工具调用,比如curl或Chrome浏览器的Postman REST客户端工具。

如果是在Mac OSX Mavericks系统上使用Docker机创建Docker守护进程,那么要启用Docker远程API功能需要一定的技巧。下面一一道来。

可以使用curl工具连接到安全的Docker端口,命令如下:

$ curl https://$HOST:2376/images/json 
 --cert ~/.docker/cert.pem 
 --key ~/.docker/key.pem 
 --cacert ~/.docker/ca.pem

此命令存在一定的问题。主要有:

1)命令可能不工作,因为每一个Docker机的证书存储在.docker/machine/machines/目录。
2)即使命令根据路径做了修改,比如:

curl https://192.168.99.100:2376/images/json --cert $DOCKER_CERT_PATH/cert.pem --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem

执行命令仍然会得到错误信息:

curl: (58) SSL: Can't load the certificate "/Users/arungupta/.docker/machine/machines/couchbase/cert.pem" and its private key: OSStatus -25299

解决方法是需要更新curl工具。总的来说,最新版的curl工具使用了Apple的安全传输层API(Secure Transport API),取代了原先的OpenSSL API。这意味着证书必须是p12格式。

下面可以这样修复命令:

1)进入Docker机存放证书的目录,比如.docker/machine/machines/couchbase目录
2)生成*.p12格式的证书

openssl pkcs12 -export 
-inkey key.pem 
-in cert.pem 
-CAfile ca.pem 
-chain 
-name client-side 
-out cert.p12 
-password pass:mypass

现在可以调用REST API了:

curl https://192.168.99.100:2376/images/json --cert $DOCKER_CERT_PATH/cert.p12 --pass mypass --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem

注意,–cert参数现在指向了生成的p12证书,证书的密码使用–pass参数进行指定。

然后会得到如下结果:

[{"Id":"sha256:d38beda529d3274636d6cb1c9000afe4f00fbdcfa544140d6cc0f5d7f5b8434a","ParentId":"",
"RepoTags":["arungupta/couchbase:latest"],"RepoDigests":null,"Created":1450330075,"Size":374824677,
"VirtualSize":374824677,"Labels":{}}]

现在可以尝试启动CouchBase服务器:

~ > docker run -d -p 8091-8093:8091-8093 -p 11210:11210 arungupta/couchbase
42d1414883affd0fbb272cb1378c2f6b5118acf3ed5cb60cbecdc42f95602e3e

再调用另一个REST API来查看容器的细节内容:

~ > curl https://192.168.99.100:2376/containers/json --cert $DOCKER_CERT_PATH/cert2.p12 --pass mypass --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem
[{"Id":"42d1414883affd0fbb272cb1378c2f6b5118acf3ed5cb60cbecdc42f95602e3e","Names":["/admiring_pike"],"Image":"arungupta/couchbase","ImageID":"sha256:d38beda529d3274636d6cb1c9000afe4f00fbdcfa544140d6cc0f5d7f5b8434a","Command":"/entrypoint.sh /opt/couchbase/configure-cluster.sh","Created":1454850194,"Ports":[{"IP":"0.0.0.0","PrivatePort":8092,"PublicPort":8092,"Type":"tcp"},{"PrivatePort":11207,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":11210,"PublicPort":11210,"Type":"tcp"},{"PrivatePort":18092,"Type":"tcp"},{"PrivatePort":18091,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":8093,"PublicPort":8093,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":8091,"PublicPort":8091,"Type":"tcp"},{"PrivatePort":11211,"Type":"tcp"}],"Labels":{},"Status":"Up 2 seconds","HostConfig":{"NetworkMode":"default"},"NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"","EndpointID":"6feaf4c1c70feaf0ba240ce55fb58ce83ebb84c8098bef9171998e84f607fa0b","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}}}]




感谢阅读,希望能帮助到大家,谢谢大家对本站的 支持!

您可能感兴趣的文章:

  • 详解MAC OSX Docker开发环境搭建
  • 在Mac OS X安装Docker教程
  • 在Mac OS上安装Vagrant和Docker的教程
  • MacOS安装Docker的过程及遇到的坑
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • VMWare12中安装苹果Mac OS X图文教程
  • Docker Machine远程部署Docker的方法
  • MacOS安装Docker的过程及遇到的坑
  • Vmware10上MAC OS 10.9安装配置方法图文教程
  • Docker Machine创建Azure虚拟主机
  • Docker Machine深入学习
  • Docker Machine是什么?
  • vmware 12 安装 mac os 10.12正式版的教程
  • 详解mac下通过docker搭建LEMP环境
  • 详解MAC OSX Docker开发环境搭建

相关文章

  • 使用jib打包docker镜像实战
  • VmWare下CentOS6安装图文教程
  • OpenStack 中的Nova组件详解
  • Ubuntu15.10安装docker和docker-compose教程
  • docker利用selenium+testng实现web自动化的方法
  • Docker构建ELK Docker集群日志收集系统
  • XenServer XenDesktop安装步骤详解(图文)
  • 使用Docker Swarm搭建分布式爬虫集群的方法示例
  • Docker安装及基本使用方法详细介绍
  • Docker 解决获取容器获取的时间不是本地时间的问题

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 从0开始了解Docker入门(小结)
    • 使用Docker搭建Java环境的步骤方法
    • Docker 教程之镜像创建及修改详细介绍
    • Docker 部署Scrapy的详解
    • 一步一步教你安装openstack(图文)
    • 详解Docker-compose networks 的例子
    • Docker 限制容器可用的CPU的方式
    • 详解Docker的持久化存储和数据共享
    • 在docker上安装运行mysql实例
    • ubuntu用 vmware 安装win10系统的教程(分享)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有