Docker Remote API driver for node.js. It uses the same modem than dockerode, but the interface is promisified and with a different syntax.
Support for:
The current status of the package is in beta state. This module covers the full API reference, including experimental stuff such as plugins.
Check the reference and the tests for full examples.
npm install node-docker-api
const Docker = require('node-docker-api').Docker
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
docker.container.create({
Image: 'ubuntu',
name: 'test'
})
.then((container) => container.start())
.then((container) => container.stop())
.then((container) => container.restart())
.then((container) => container.delete({ force: true }))
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
// List
docker.container.list()
// Inspect
.then((containers) => containers[0].status())
.then((container) => container.top())
.then((processes) => console.log(processes))
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
// List
docker.container.list()
// Inspect
.then((containers) => containers[0].status())
.then((container) => container.stats())
.then((stats) => {
stats.on('data', (stat) => console.log('Stats: ',stat))
stats.on('error', (err) => console.log('Error: ', err))
})
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
let container
docker.container.create({
Image: 'ubuntu',
name: 'test'
})
.then((container) => container.logs({
follow: true,
stdout: true,
stderr: true
}))
.then((stream) => {
stream.on('data', (info) => console.log(info))
stream.on('error', (err) => console.log(err))
})
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker,
fs = require('fs')
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
let container
docker.container.create({
Image: 'ubuntu',
name: 'test'
})
.then((container) => container.start())
.then((container) => container.export())
.then((content) => {
let file = fs.createWriteStream("container.tar");
file.end(content)
})
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker,
fs = require('fs')
const promisifyStream = (stream) => new Promise((resolve, reject) => {
stream.on('data', (d) => console.log(d.toString()))
stream.on('end', resolve)
stream.on('error', reject)
})
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
let container
docker.container.create({
Image: 'ubuntu',
Cmd: [ '/bin/bash', '-c', 'tail -f /var/log/dmesg' ],
name: 'test'
})
.then((container) => container.start())
.then((_container) => {
container = _container
return _container.fs.put('./file.tar', {
path: 'root'
})
})
.then((stream) => promisifyStream(stream))
.then(() => container.fs.get({ path: '/var/log/dmesg' }))
.then((stream) => {
let file = fs.createWriteStream("file.jpg");
stream.pipe(file)
return promisifyStream(stream)
})
.then(() => container.status())
.then((container) => container.stop())
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker
const promisifyStream = (stream) => new Promise((resolve, reject) => {
console.log(stream);
stream.on('data', (d) => console.log(d.toString()))
stream.on('end', resolve)
stream.on('error', reject)
})
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
docker.container.create({
Image: 'ubuntu',
Cmd: [ '/bin/bash', '-c', 'tail -f /var/log/dmesg' ],
name: 'test'
})
.then((container) => container.start())
.then((_container) => {
container = _container
return container.exec.create({
Cmd: [ "top" ]
})
})
.then((exec) => {
return exec.start()
})
.then((stream) => {
stream.on('data', (info) => {
console.log(info.toString())
_container.kill()
})
stream.on('error', (err) => console.log(err))
})
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker,
tar = require('tar-fs')
const promisifyStream = (stream) => new Promise((resolve, reject) => {
stream.on('data', (d) => console.log(d.toString()))
stream.on('end', resolve)
stream.on('error', reject)
})
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
var tarStream = tar.pack('/path/to/Dockerfile')
docker.image.build(tarStream, {
t: 'testimg'
})
.then((stream) => promisifyStream(stream))
.then(() => docker.image.status('testimg'))
.then((image) => image.remove())
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker
const promisifyStream = (stream) => new Promise((resolve, reject) => {
stream.on('data', (d) => console.log(d.toString()))
stream.on('end', resolve)
stream.on('error', reject)
})
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
return docker.image.create({}, { fromImage: 'ubuntu', tag: 'latest' })
.then((stream) => promisifyStream(stream))
.then(() => docker.image.status('ubuntu'))
.then((image) => image.history())
.then((events) => console.log(events))
.catch((error) => console.log(error))
const Docker = require('node-docker-api').Docker,
fs = require('fs')
const promisifyStream = (stream) => new Promise((resolve, reject) => {
stream.on('data', (d) => console.log(data))
stream.on('end', resolve)
stream.on('error', reject)
})
let docker = new Docker({ socketPath: '/var/run/docker.sock' })
docker.events({
since: ((new Date().getTime() / 1000) - 60).toFixed(0)
})
.then((container) => container.events())
.then((stream) => promisifyStream(stream))
.catch((error) => console.log(error))
Generated using TypeDoc