通过Node.js连接到远程Docker
我有一个Docker在我的一台服务器上build立并运行,可以像这样远程连接到它:
docker --tlsverify -H tcp://web2.webcom.dk:4243 images
我用这个和这个来设置它。
我想要做的是能够通过Node.js连接到它,并试图用dockerode这对我来说似乎是最好的select。
这是我的代码:
Docker = require 'dockerode' docker = new Docker host: 'tcp://web2.webcom.dk' port: 4243 tls: true tlscacert: '/Users/jacob/.docker/ca.pem' tlscert: '/Users/jacob/.docker/cert.pem' tlskey: '/Users/jacob/.docker/key.pem' tlsverify: true container = docker.getContainer '826544226fdc' container.start (err, data) -> return console.error err if err? console.log data
这不工作,但我得到这个错误:
{ [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect' }
有任何想法吗?
UPDATE
这在当地工作:
Docker = require 'dockerode' docker = new Docker host: '192.168.59.103' port: 2375 socketPath: false docker.run 'ubuntu', ['bash', '-c', 'uname -a'], process.stdout, (err, data, container) -> return console.error err if err?
但是,如果我使用我的远程主机IP和端口,我得到这个:
{ [Error: Parse Error] bytesParsed: 0, code: 'HPE_INVALID_CONSTANT' }
我怎样才能连接到我的远程主机?
这是一个HTTP PARSER ERROR
,因为你的dockerd使用HTTPS,而你使用HTTP来连接它。 如果您使用tls,则必须将prococol字段设置为https
。 这是我的configuration:
docker: { host: '192.168.59.103' port: 2376 protocol: 'https' ca: fs.readFileSync(process.env.DOCKER_CERT_PATH + '/ca.pem') cert: fs.readFileSync(process.env.DOCKER_CERT_PATH + '/cert.pem') key: fs.readFileSync(process.env.DOCKER_CERT_PATH + '/key.pem') }
- 咖啡标记重置卡不是一个function
- 将jadeify添加到node-express-browserify项目中
- 在npm install上编译coffeescript
- 用Node.js和CoffeeScript遍历文件中的行
- SyntaxError:意外的POST_IF错误
- 使用node.js和coffeescript执行Ubuntu命令
- coffeescript,玉器,手写笔 – > js,css资产经理? 的node.js
- 我如何得到Guard来自动编译我的Coffeescript文件? 说是的,但不是
- templateDatavariables返回未定义的帮助函数(docpad.coffeeconfiguration文件)