dockops

0.2.1 • Public • Published

dockops build status

docker convenience functions on top of dockerode

Table of Contents generated with DocToc

var dockops = require('dockops')
var docker = dockops.createDocker({ dockerhost: dockerhost });
 
var images = new dockops.Images(docker);
dockops.logEvents(images, 'verbose');
 
var containers = new dockops.Containers(docker);
dockops.logEvents(containers, 'verbose');
 
build('test:uno', testUnoTar, function () {
  build('toast:uno', toastUnoTar, function () {
 
    containers.run(.. // run test:uno and toast:uno containers
 
    containers.listRunning(function (err, res) {
      inspect(res);
      containers.stopRemoveGroup('test', function (err, res) {
        containers.listRunning(function (err, res) {
          inspect(res);
          http.request({ port: 49222 }, function (res) {
            console.log('--------------------------')
            inspect({ status: res.statusCode, headers: res.headers })
            res.pipe(process.stdout)
          }).end()
        }) 
      })
    })
  })
})

full example

output

Installation

npm install dockops

API

dockops::Containers(docker) → {Object}

Creates a new containers instance that will use the given docker instance to communicate with docker.

Parameters:
Name Type Description
docker Object

dockerode instance to communicate with docker

Source:
Returns:

initialized containers

Type
Object

dockops::Containers::activePorts(cb)

Lists all running containers by the ports they expose.

Parameters:
Name Type Description
cb function

called back with list of containers hashed by their port number

Source:

dockops::Containers::clean(id, cb)

Stops and/or kills and then removes a container.

Heavy machinery clean operation. It was useful when running on arch with docker not always working as promised. This may not be needed anymore as docker got more stable.

Parameters:
Name Type Description
id string

container id

cb function

called back after container was cleaned or maximum attempts were exceeded

Source:

dockops::Containers::create(opts, cb)

Creates a docker container according to given opts.

Parameters:
Name Type Description
opts Object

creation options passed to dockerode

cb function

called back when container was created

Source:

dockops::Containers::listAll(cb)

Lists all docker containers.

Parameters:
Name Type Description
cb function

called back with list of containers

Source:

dockops::Containers::listGroup(group, cb)

Lists all containers that were created from images belonging to a given group.

Parameters:
Name Type Description
group string

group for which to list containers

cb function
Source:

dockops::Containers::listGroupRunning(group, cb)

Lists all running docker containers of the given group

Parameters:
Name Type Description
group string

group for which to list running containers

cb function

called back with list of running containers

Source:

dockops::Containers::listImage(imageName, cb)

Lists all containers that were created from a particular image.

Parameters:
Name Type Description
imageName string

name of image for which to list containers

cb function
Source:

dockops::Containers::listRunning(cb)

Lists all running docker containers

Parameters:
Name Type Description
cb function

called back with list of running containers

Source:

dockops::Containers::listStopped(cb)

Lists all stopped docker containers

Parameters:
Name Type Description
cb function

called back with list of stopped containers

Source:

dockops::Containers::remove(id, cb)

Removes the container with the given id

Parameters:
Name Type Description
id string

id of the container to remove

cb function

called back when container was removed

Source:

dockops::Containers::removeGroup(group, cb)

Removes all containers that were created from images belonging to a given group.

Parameters:
Name Type Description
group string

group for which to remove containers

cb function
Source:

dockops::Containers::removeImage(name, cb)

Removes all containers that were created from the image with the given name

Parameters:
Name Type Description
name string

name of the image for which to remove containers

cb function

called back when containers were removed

Source:

dockops::Containers::removeStopped(cb)

Removes all stopped containers.

Parameters:
Name Type Description
cb function

called back when all stopped containers where removed.

Source:

dockops::Containers::run(opts, cb)

Creates and starts a container.

Parameters:
Name Type Description
opts Object

container creation and start options

Properties
Name Type Argument Description
create Object

creation options passed to dockerode

start Object

start options passed to container.start

startRetries Object <optional>

(default: 0) determines how many times we retry to start the container in case it fails

cb function

called when the container was started - with an error if it failed

Source:

dockops::Containers::stop(id, cb)

Stops the container with the given id

Parameters:
Name Type Description
id string

id of the container to stop

cb function

called back when container was stopd

Source:

dockops::Containers::stopGroup(group, cb)

Stops all containers that were created from images belonging to a given group.

Parameters:
Name Type Description
group string

group for which to stop containers

cb function
Source:

dockops::Containers::stopImage(name, cb)

Stops all containers that were created from the image with the given name

Parameters:
Name Type Description
name string

name of the image for which to stop containers

cb function

called back when containers were stopped

Source:

dockops::Containers::stopRemove(id, cb)

Stops and then removes the container with the given id

Parameters:
Name Type Description
id string

id of the container to stop and remove

cb function

called back when container was stopped and removed

Source:

dockops::Containers::stopRemoveGroup(group, cb)

Stops and then removes all containers created from images belonging to a given group.

Parameters:
Name Type Description
group string

group for which to remove containers

cb function
Source:

dockops::Containers::stopRemoveImage(name, cb)

Stops and then removes all containers that were created from the image with the given name

Parameters:
Name Type Description
name string

name of the image for which to stop and remove containers

cb function

called back when containers were stopped and removed

Source:

dockops::createDocker(dockerhost) → {Object}

Convenience function to create a dockerode instance.

Parameters:
Name Type Argument Description
dockerhost string <optional>

(default: 'unix:///var/run/docker.sock') the docker host can also be http or tcp

Source:
Returns:

dockerode instance

Type
Object

dockops::Images(docker) → {Object}

Creates a new images instance that will use the given docker instance to communicate with docker.

Parameters:
Name Type Description
docker Object

dockerode instance to communicate with docker

Source:
Returns:

initialized images

Type
Object

dockops::Images::build(tarStream, image, cb)

Builds an image from the stream provided. All intermediate containers are removed after the image was created.

All events from the tar stream are re-emitted, especially useful if it was created with dockerify.

Parameters:
Name Type Description
tarStream Stream

the tar stream that contains the project files and a Dockerfile

image string

then name under which to tag the created image

cb function

called back when image is created or with an error if one occurred

Source:

dockops::Images::buildStream(tarStream, image, cb)

Builds an image from the stream provided. All intermediate containers are removed after the image was created.

Note: if you want all events from the tar stream to be propagated, i.e. if it was created with dockerify, use build instead.

Parameters:
Name Type Description
tarStream Stream

the tar stream that contains the project files and a Dockerfile

image string

then name under which to tag the created image

cb function

called back when image is created or with an error if one occurred

Source:

dockops::Images::deserializeImageName(name) → {Object}

Deserializes the given image name into an object.

Parameters:
Name Type Description
name string

the name of the image, expected to be in the format: 'group:tag'.

Source:
Returns:

object of the format: { group: 'group', tag: 'tag' }

Type
Object

dockops::Images::list(cb)

Lists docker images.

Parameters:
Name Type Description
cb function

called back with list of images

Source:

dockops::Images::listGroup(group, cb)

Lists docker images for given group.

Parameters:
Name Type Description
group string

name of the group of images to list

cb function

called back with list of images

Source:

dockops::Images::removeGroup(group, cb)

Removes all images for the given group

Parameters:
Name Type Description
group string

name of the group of images to remove

cb function

called back when the images were removed

Source:

dockops::logEvents(events, level)

Logs events emitted with npm log at the given level.

debug events are logged as verbose.

Parameters:
Name Type Description
events EventEmitter

events that should be logged

level string

(default: verbose) level of logging error|warn|info|verbose|silly

Source:

dockops::portBindings(exposePort, hostPort) → {Object}

Helper function to creat a proper tcp portbinding for the given ports

Parameters:
Name Type Argument Description
exposePort number

the port of the docker container to expose to the host

hostPort number <optional>

(default: 0 which causes docker to pick a port) the host port to which to bind the exposed port

Source:
Returns:

the port binding to pass to docker when creating a container

Type
Object

generated with docme

License

MIT

Package Sidebar

Install

npm i dockops

Weekly Downloads

11

Version

0.2.1

License

MIT

Last publish

Collaborators

  • thlorenz