@runnable/loki
v3.3.0
Published
Runnable Docker/Swarm library with batteries
Downloads
26
Maintainers
Readme
loki
Runnable Docker/Swarm client library with batteries.
Features
- 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
Usage
You can use loki Docker client Promisified extra container functions like this:
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:
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:
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:
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)
})
Base functions
Every Loki client include utility Promise-based functions to deal with containers.
E.x. instead of this code
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
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
Swarm functions
- swarmHostsAsync
- swarmInfoAsync
- swarmHostExistsAsync
Conventions
- Each client instance has all functions from Dockerode client available to call directly.
- Each client instance has Promisified Dockerode functions available with
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
Async
suffix.