Simple Container
Simple and fast work with the Docker container. Works great in Travis CI for testing
It uses the library dockerode.
Installation
npm install --save simple-container
Using
A simple example that creates and starts a container:
import Containers from 'simple-container'; var containers = new Containers(); containers.create('hello-world:latest').then(container => { console.info(`The ${container.id} container was created.`); start(container);}); /* Run the created container */function start(container) { container.start().then(() => { console.info(`The ${container.id} container is running.`); });}
Remote connection
By default, the local service is used.
For example, if you want to use connection settings:
var containers = new Containers({ host: '127.0.0.1', port: 3000});
Examples and details in the documentation.
Creating a container
You can create a container in two ways.
A simple way - to specify the name of the image:
containers.create('hello-world:latest');
Another way - to provide an object with parameters:
containers.create({ Image: 'postgres:alpine', Env: ['POSTGRES_PASSWORD = password'], Ports: [{ IP: '0.0.0.0', PrivatePort: 5432, PublicPort: 5432, Type: 'tcp' }]});
Examples and details in the documentation.
Third-party repository
An additional example of obtaining a private image:
var auth = { serveraddress: 'https://index.docker.io/v1', email: 'email@example.org', username: 'username', password: 'password', auth: ''}; containers.create({ Image: 'project:latest', authconfig: auth});
Details in the documentation.
API
-
create(options) ⇒
Promise
-
Creates a container by options or name, returning the management interface.
-
get([id]) ⇒
Promise
-
Returns the container management interface.
-
info([id]) ⇒
Promise
-
Searches in existing containers.
Promise
create(options) ⇒ Creates a container by options or name, returning the management interface.
Param | Type | Description |
---|---|---|
options | String \ Object |
The name of the image or options |
Promise
get([id]) ⇒ Returns the container management interface.
Param | Type | Description |
---|---|---|
[id] | String |
Container ID |
Examples:
containers.get().then(containers => { /* containers - All containers in the system */}); containers.get('5520e855dd2c301b23a718cf392f9619d1edc3dc0fa294559b725d7588ca807f').then(container => { /* container - The specified container */});
Promise
info([id]) ⇒ Searches in existing containers.
Param | Type | Description |
---|---|---|
[id] | String |
Container ID |
Examples:
containers.info().then(containers => { /* containers - All containers in the system */}); containers.info('21ae4a54be582d13fffd796341b3561a8c8e0c59dd6c6c3239529188e2b3321d').then(container => { /* container - The specified container */});
License
MIT. Copyright (c) Valentin Popov.