如何从码头集装箱到码头机器进行通信?

问题描述:

我的问题是如何能够连接到码头集装箱内的码头机插座?如何从码头集装箱到码头机器进行通信?

我想达到什么是dockerize一个API网关,但这个API网关需要传达给泊坞窗机插座,要能够发现类似如下的运行容器:

const machine = process.env.DOCKER_HOST 
const tls = process.env.DOCKER_TLS_VERIFY 
const certDir = process.env.DOCKER_CERT_PATH 

if (!machine) { 
    throw new Error('You must set the DOCKER_HOST environment variable') 
} 
if (tls === 1) { 
    throw new Error('When using DOCKER_TLS_VERIFY=1 you must specify the property DOCKER_CERT_PATH for certificates') 
} 
if (!certDir) { 
    throw new Error('You must set the DOCKER_CERT_PATH environment variable') 
} 

const dockerSettings = { 
    protocol: 'https', 
    host: machine.substr(machine.indexOf(':', 0) + 3, machine.indexOf(':', 6) - 6), 
    port: parseInt(machine.substr(-4), 10), 
    checkServerIdentity: false, 
    ca: fs.readFileSync(certDir + '/ca.pem'), 
    cert: fs.readFileSync(certDir + '/cert.pem'), 
    key: fs.readFileSync(certDir + '/key.pem'), 
    version: 'v1.25' 
} 

这在本地主机上运行,​​并且可以访问env变量并可以访问docker-machine套接字。

我如何沟通是从libarary dockerode像下面

const docker = new Docker(dockerSettings) 

但一旦我把它放在一个容器中需要共享这个插座与容器,以便能够执行泊坞窗命令,这是用于在nodejs中进行一种docker服务发现。

正如我在another answer中所写,您可以在启动容器时设置网关,创建某种代理来访问node.js应用程序或从容器中获取主机ip。

此外,我会看看处理码头集装箱发现的专用工具,如。