socat使用指南:5:打开MacOS上的Remote API服务

在这里插入图片描述
Docker提供了Remote API,可以通过REST方式的接口进行操作,但是在MacOS上Docker Desktop CE的缺省安装,却无法使用,这篇文章继续介绍如何使用socat实现在MacOS上开启Docker Remote API的方式。

事前确认

  • 操作系统版本确认
liumiaocn:~ liumiao$ uname -a
Darwin liumiaocn 19.2.0 Darwin Kernel Version 19.2.0: Sat Nov  9 03:47:04 PST 2019; root:xnu-6153.61.1~20/RELEASE_X86_64 x86_64
liumiaocn:~ liumiao$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.2
BuildVersion:	19C57
liumiaocn:~ liumiao$
  • docker版本确认
liumiaocn:~ liumiao$ docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:22:34 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:29:19 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
liumiaocn:~ liumiao$ 

事前确认

通过curl可以确认到当前机器在2375端口并未提供REST服务

liumiaocn:~ liumiao$ curl localhost:2375/version
curl: (7) Failed to connect to localhost port 2375: Connection refused
liumiaocn:~ liumiao$ 

使用socat开启服务

执行如下命令,即可使用socat在2375端口开启Remot API服务

执行命令:socat -d TCP-LISTEN:2375,reuseaddr,fork UNIX:/var/run/docker.sock

执行日志如下所示:

liumiaocn:~ liumiao$ socat -d TCP-LISTEN:2375,reuseaddr,fork UNIX:/var/run/docker.sock

注:另外可以结合range进行限定,同时也可以使用镜像方式的socat,也可以结合使用nohup在后台运行,此处不再赘述。

结果确认

liumiaocn:nodered liumiao$ curl localhost:2375/version 2>/dev/null |jq .
{
  "Platform": {
    "Name": "Docker Engine - Community"
  },
  "Components": [
    {
      "Name": "Engine",
      "Version": "19.03.5",
      "Details": {
        "ApiVersion": "1.40",
        "Arch": "amd64",
        "BuildTime": "2019-11-13T07:29:19.000000000+00:00",
        "Experimental": "true",
        "GitCommit": "633a0ea",
        "GoVersion": "go1.12.12",
        "KernelVersion": "4.9.184-linuxkit",
        "MinAPIVersion": "1.12",
        "Os": "linux"
      }
    },
    {
      "Name": "containerd",
      "Version": "v1.2.10",
      "Details": {
        "GitCommit": "b34a5c8af56e510852c35414db4c1f4fa6172339"
      }
    },
    {
      "Name": "runc",
      "Version": "1.0.0-rc8+dev",
      "Details": {
        "GitCommit": "3e425f80a8c931f88e6d94a8c831b9d5aa481657"
      }
    },
    {
      "Name": "docker-init",
      "Version": "0.18.0",
      "Details": {
        "GitCommit": "fec3683"
      }
    }
  ],
  "Version": "19.03.5",
  "ApiVersion": "1.40",
  "MinAPIVersion": "1.12",
  "GitCommit": "633a0ea",
  "GoVersion": "go1.12.12",
  "Os": "linux",
  "Arch": "amd64",
  "KernelVersion": "4.9.184-linuxkit",
  "Experimental": true,
  "BuildTime": "2019-11-13T07:29:19.000000000+00:00"
}
liumiaocn:nodered liumiao$ 
发布了1143 篇原创文章 · 获赞 1364 · 访问量 415万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/104967053