Simple and fast work with the Docker container. Works great in Travis CI for testing
It uses the library dockerode.
npm install --save simple-container
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.`);
});
}
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.
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.
An additional example of obtaining a private image:
var auth = {
serveraddress: 'https://index.docker.io/v1',
email: '[email protected]',
username: 'username',
password: 'password',
auth: ''
};
containers.create({
Image: 'project:latest',
authconfig: auth
});
Details in the documentation.
-
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.
Creates a container by options or name, returning the management interface.
Param | Type | Description |
---|---|---|
options | String \ Object |
The name of the image or options |
Returns the container management interface.
Param | Type | Description |
---|---|---|
[id] | String |
Container ID |
containers.get().then(containers => {
/* containers - All containers in the system */
});
containers.get('5520e855dd2c301b23a718cf392f9619d1edc3dc0fa294559b725d7588ca807f').then(container => {
/* container - The specified container */
});
Searches in existing containers.
Param | Type | Description |
---|---|---|
[id] | String |
Container ID |
containers.info().then(containers => {
/* containers - All containers in the system */
});
containers.info('21ae4a54be582d13fffd796341b3561a8c8e0c59dd6c6c3239529188e2b3321d').then(container => {
/* container - The specified container */
});
MIT. Copyright (c) Valentin Popov.