Runnable Docker/Swarm library with batteries
npm install @runnable/loki





Runnable Docker/Swarm client library with batteries.
!Loki
* include both Docker and Swarm clients
* Swarm client has all additional swarmerode Promisified methods
* automatically report each docker call to datadog using dogerode
* HTTPS certs are required. Will throw an error
* Base client includes Promisified container actions like stopContainer, logContainer etc
* You can still call Dockerode directly. Dockerode instance is available under client property
You can use loki Docker client Promisified extra container functions like this:
``javascript
const Docker = require('loki').Docker
const dockerClient = new Docker({ host: 'https://127.0.0.1:4242'})
dockerClient.stopContainerAsync('71501a8ab0f8')
.then(function () {
console.log('container stopped')
})
.catch(function (err) {
console.log('container failed to stop', err)
})
`
You can use loki Dockerode client methods like this:
`javascript
const Docker = require('loki').Docker
const dockerClient = new Docker({ host: 'https://127.0.0.1:4242'})
dockerClient.getContainer('71501a8ab0f8')
.stop(function (err) {
if (err) {
return console.log('container failed to stop', err)
}
console.log('container stopped')
})
`
You can use loki Dockerode promisified methods directly like this:
`javascript
const Docker = require('loki').Docker
const dockerClient = new Docker({ host: 'https://127.0.0.1:4242'})
dockerClient.listConatinersAsync('71501a8ab0f8')
.then(function (containers) {
console.log('found containers')
})
`
You can extend loki Docker client with your app specific functions:
`javascript
const Docker = require('loki').Docker
class MyDocker extends Docker {
}
const myDocker = new MyDocker()
dockerClient.stopContainerAsync('71501a8ab0f8')
.then(function () {
console.log('container stopped')
})
.catch(function (err) {
console.log('container failed to stop', err)
})
`
Every Loki client include utility Promise-based functions
to deal with containers.
E.x. instead of this code
`javascript
const Docker = require('loki').Docker
const dockerClient = new Docker({ host: 'https://127.0.0.1:4242'})
dockerClient.getContainer('71501a8ab0f8')
.stop(function (err) {
console.log('stopped container?', err)
})
`
You can do the following
`javascript
const Docker = require('loki').Docker
const dockerClient = new Docker({ host: 'https://127.0.0.1:4242'})
dockerClient.stopContainerAsync('71501a8ab0f8')
.then(function () {
console.log('container was stopped')
})
`
- topContainerAsync
- startContainerAsync
- commitContainerAsync
- inspectContainerAsync
- stopContainerAsync
- pauseContainerAsync
- unpauseContainerAsync
- restartContainerAsync
- resizeContainerAsync
- attachContainerAsync
- removeContainerAsync
- killContainerAsync
- execContainerAsync
- renameContainerAsync
- logsContainerAsync
- statsContainerAsync
- getArchiveContainerAsync
- infoArchiveContainerAsync
- putArchiveContainerAsync
- updateContainerAsync
- swarmHostsAsync
- swarmInfoAsync
- swarmHostExistsAsync
* Each client instance has all functions from Dockerode client available to call directly.
* Each client instance has Promisified Dockerode functions available with Async suffix.Async` suffix.
* Each Swarm client instance has all functions from Swarmerode client available to call directly.
* Each Swarm client instance has Promisified Swarmerode functions available with