将主机抽象域套接字传递给Docker容器

时间:2018-03-12 17:53:36

标签: amazon-web-services sockets docker

我试图通过CloudHSM Java API(即此thingy)让Docker容器访问EC2实例上的CloudHSM客户端服务。使用lsof命令,主机上的客户端服务似乎使用了可能是抽象域套接字的东西,因为输出包含这种东西(请注意文件名前面的@):

cloudhsm_ 1249 1271    hsmuser   26u     unix 0xSOMEHEX      0t0      13265 @/etc/cavium/daemon_socket1 type=STREAM

但是当我尝试在容器内部使用库时,我发现了这个错误:

com.cavium.cfm2.CFM2Exception: A call to the API login failed with error code 40000040 : LIQUIDSECURITY: Daemon socket connection error

这向我表明该容器内部的套接字不可用(考虑到没有端口或卷与容器共享,这是有意义的)。但是,由于似乎没有要通过卷共享的套接字文件,我没有看到将守护进程套接字放入容器的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,我发现的最佳解决方案是为客户端服务创建一个单独的容器,然后使用Java API在容器上使用"{0.__repr__():10}".format('Hello') 链接两个容器,其中--net="container:cloudhsm"是其名称客户服务容器。您还可以反转哪个容器在网络上占用,但关键是这将导致两个容器共享同一网络,这似乎允许它们共享必要的套接字。

相关问题