У меня Docker установлен и запущен на одном из моих серверов и может подключаться к нему удаленно, как это:Подключение к удаленному Докер через Node.js
docker --tlsverify -H tcp://web2.webcom.dk:4243 images
Я использовал this и this, чтобы получить его установить вверх.
Что я хотел бы сделать, так это подключиться к нему через Node.js и попытался сделать это с помощью dockerode, который мне кажется лучшим вариантом.
Вот мой код:
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' }
Как я могу подключиться к удаленной хозяйничать?
Возможно, для тех, кто не сразу признает это, стоит указать код [CoffeeScript] (http://coffeescript.org/). –