Runnable Docker/Swarm client library with batteries.
- 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,logContaineretc - You can still call Dockerode directly. Dockerode instance is available under
clientproperty
You can use loki Docker client Promisified extra container functions like this:
constDocker=require('loki').DockerconstdockerClient=newDocker({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:
constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.getContainer('71501a8ab0f8').stop(function(err){if(err){returnconsole.log('container failed to stop',err)}console.log('container stopped')})You can use loki Dockerode promisified methods directly like this:
constDocker=require('loki').DockerconstdockerClient=newDocker({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:
constDocker=require('loki').DockerclassMyDockerextendsDocker{}constmyDocker=newMyDocker()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
constDocker=require('loki').DockerconstdockerClient=newDocker({host: 'https://127.0.0.1:4242'})dockerClient.getContainer('71501a8ab0f8').stop(function(err){console.log('stopped container?',err)})You can do the following
constDocker=require('loki').DockerconstdockerClient=newDocker({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
Asyncsuffix. - Each Swarm client instance has all functions from Swarmerode client available to call directly.
- Each Swarm client instance has Promisified Swarmerode functions available with
Asyncsuffix.