配置docker远程连接

干什么

在部署服务的时候需要暴露docker的接口方便我们的程序调用,我们准备将docker的操作按照RESTful标准包装成网络API,docker自身提供了完善的remote API 我希望使用利用这个API来方便我远程的调试我的程序。

配置环境

centos 7.2 docker 1.12.2


一、 docker daemon

docker daemon 字面上是docker守护进程,它是一个持续的管理容器的进程,docker在架构上分为守护进程和客户端两部分,用户通过客户端向docker daemon发出指令,docker daemon执行并且返回执行结果。
因此一个docker daemon可以接受不止一个客户端的指令,它可以从多种途径接受用户的指令。
docker daemon socket可以接受三种socket连接:

  • unix
  • tcp
  • fd

二、配置socket

docker daemon默认监听来自Unix socket的指令,也就是我们经常使用的在终端内的docker指令。
为了实现远程的连接,我们需要让它也监听tcp接口,tcp连接中有加密和不加密两种方式,分别监听2375和2376接口。我们可以使用docker daemon指令来操作docker的守护进程,用-H 指令决定监听的对象,可同时监听多个,例如:

dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2

但是我们这里已经启动了一个docker daemon,这里使用修改配置文件的方式来指定socket监听。
在/etc/docker/daemon.json 中加入键值对 “hosts”:[“192.168.1.1”, “unix:///var/run/docker.sock”](不同系统下配置文件可能不同)
注意这个地方如果绑定到0.0.0.0意味着所有人都可以任意操作这台机器上的docker,而且docker拥有root权限,也就是说实际上开启之后别人可以通过docker来任意操作这台计算机,实际中一定不要将接口直接暴露在外面,使用内网或者unix连接,不然会被黑
然后重启docker服务:

systemctl restart docker

三、尝试连接

因为项目使用的是python语言,我使用的是docker-py来远程连接docker daemon,pip安装好之后执行

from docker import Client
cli = Client(base_url='tcp://192.168.1.1:2375')
cli.images()

返回json格式的image的列表,说明连接成功。

四、开发部署

docker用的是内网一台电脑开启虚拟机部署,完成后再部署到服务器本地上面。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值