# Simple Container [](https://github.com/valentineus/simple-container/releases) [](https://www.npmjs.com/package/simple-container) [](https://travis-ci.org/valentineus/simple-container) [](https://www.codacy.com/app/valentineus/simple-container) [](https://www.codacy.com/app/valentineus/simple-container/files) [](https://gitter.im/valentineus/simple-container) Simple and fast work with the Docker container. Works great in [Travis CI](https://travis-ci.org/) for testing It uses the library [dockerode](https://github.com/apocas/dockerode). ## Installation ```bash npm install --save simple-container ``` ## Using A simple example that creates and starts a container: ```JavaScript 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: ```JavaScript var containers = new Containers({ host: '127.0.0.1', port: 3000 }); ``` Examples and details in [the documentation](https://github.com/apocas/dockerode#getting-started). ### Creating a container You can create a container in two ways. A simple way - to specify the name of the image: ```JavaScript containers.create('hello-world:latest'); ``` Another way - to provide an object with parameters: ```JavaScript 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](https://github.com/apocas/dockerode#manipulating-a-container). #### Third-party repository An additional example of obtaining a private image: ```JavaScript 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](https://github.com/apocas/dockerode#pull-from-private-repos). ## API
Promise
Creates a container by options or name, returning the management interface.
Promise
Returns the container management interface.
Promise
Searches in existing containers.
Promise
Creates a container by options or name, returning the management interface.
| Param | Type | Description |
| --- | --- | --- |
| options | String
\ Object
| The name of the image or options |
### get([id]) ⇒ Promise
Returns the container management interface.
| Param | Type | Description |
| --- | --- | --- |
| [id] | String
| Container ID |
#### Examples:
```JavaScript
containers.get().then(containers => {
/* containers - All containers in the system */
});
containers.get('5520e855dd2c301b23a718cf392f9619d1edc3dc0fa294559b725d7588ca807f').then(container => {
/* container - The specified container */
});
```
### info([id]) ⇒ Promise
Searches in existing containers.
| Param | Type | Description |
| --- | --- | --- |
| [id] | String
| Container ID |
#### Examples:
```JavaScript
containers.info().then(containers => {
/* containers - All containers in the system */
});
containers.info('21ae4a54be582d13fffd796341b3561a8c8e0c59dd6c6c3239529188e2b3321d').then(container => {
/* container - The specified container */
});
```
## License
[](https://github.com/eslint/eslint)
[MIT](LICENSE.md).
Copyright (c)
[Valentin Popov](mailto:info@valentineus.link).