npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

docker-cli-js

v2.10.0

Published

A node.js wrapper for the docker command line interface CLI

Downloads

35,227

Readme

docker-cli-js

A node.js wrapper for the docker command line tool

NPM version NPM downloads

Installation

Warning

Code uses exec = child_process.exec; https://github.com/Quobject/docker-cli-js/issues/22

Step 1: Prerequisites

The docker command line tool must be installed and accessible in the path

Step 2: Installation

npm install docker-cli-js

Then:

var dockerCLI = require('docker-cli-js');
var DockerOptions = dockerCLI.Options;
var Docker = dockerCLI.Docker;

Usage

Modern JS - direct call

// esm
const { dockerCommand } = require('docker-cli-js');

// default options
const options = {
  machineName: null, // uses local docker
  currentWorkingDirectory: null, // uses current working directory
  echo: true, // echo command output to stdout/stderr
};

const data = await dockerCommand('build -t nginximg .', options);

With promise

   var options = new DockerOptions(
    /* machinename */ 'aws_machine01',
    /* currentWorkingDirectory */ 'nginx',
    /* echo */ true,
   );    

   var docker = new Docker(options);

   docker.command('build -t nginximg .').then(function (data) {
    console.log('data = ', data);
   })


//data = {
//  command: 'docker --tlsverify --tlscacert="/home/ubuntu/.docker/machine/machines/aws_machine01/ca.pem" --tlscert="/home/ubuntu/.docker/machine/machines/aws_machine01/cert.pem" --tlskey="/home/ubuntu/.docker/machine/machines/aws_machine01/key.pem" -H=tcp://52.64.142.194:2376 build -t nginximg . ',
//  raw: 'Sending build context to Docker daemon 3.584 kB\\rSending build context to Docker daemon 3.584 kB\\r\\r\\nStep 0 : FROM nginx\\nlatest: Pulling from library/nginx\\n843e2bded498: Pulling fs layer\\n8c00acfb0175: Pulling fs layer\\n426ac73b867e: Pulling fs layer\\nd6c6bbd63f57: Pulling fs layer\\n4ac684e3f295: Pulling fs layer\\n91391bd3c4d3: Pulling fs layer\\nb4587525ed53: Pulling fs layer\\n0240288f5187: Pulling fs layer\\n28c109ec1572: Pulling fs layer\\n063d51552dac: Pulling fs layer\\nd8a70839d961: Pulling fs layer\\nceab60537ad2: Pulling fs layer\\nd8a70839d961: Verifying Checksum\\nd8a70839d961: Download complete\\n4ac684e3f295: Verifying Checksum\\n4ac684e3f295: Download complete\\n0240288f5187: Verifying Checksum\\n0240288f5187: Download complete\\nd6c6bbd63f57: Verifying Checksum\\nd6c6bbd63f57: Download complete\\n8c00acfb0175: Verifying Checksum\\n8c00acfb0175: Download complete\\nceab60537ad2: Verifying Checksum\\nceab60537ad2: Download complete\\n28c109ec1572: Verifying Checksum\\n28c109ec1572: Download complete\\n426ac73b867e: Verifying Checksum\\n426ac73b867e: Download complete\\n063d51552dac: Verifying Checksum\\n063d51552dac: Download complete\\n91391bd3c4d3: Verifying Checksum\\n91391bd3c4d3: Download complete\\nb4587525ed53: Verifying Checksum\\nb4587525ed53: Download complete\\n843e2bded498: Verifying Checksum\\n843e2bded498: Download complete\\n843e2bded498: Pull complete\\n8c00acfb0175: Pull complete\\n426ac73b867e: Pull complete\\nd6c6bbd63f57: Pull complete\\n4ac684e3f295: Pull complete\\n91391bd3c4d3: Pull complete\\nb4587525ed53: Pull complete\\n0240288f5187: Pull complete\\n28c109ec1572: Pull complete\\n063d51552dac: Pull complete\\nd8a70839d961: Pull complete\\nceab60537ad2: Pull complete\\nlibrary/nginx:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.\\nDigest: sha256:302e0a331371acb77e434075d111ebe485a7f3605fdcf184185fcca73d65ac8b\\nStatus: Downloaded newer image for nginx:latest\\n ---> ceab60537ad2\\nStep 1 : COPY content /usr/share/nginx/html\\n ---> d57e3a01e674\\nRemoving intermediate container 84b42b1010a6\\nSuccessfully built d57e3a01e674\\n',
//  success: true,
//  imageId: 'd57e3a01e674',
//  response:
//   ['Sending build context to Docker daemon 3.584 kB\rSending build context to Docker daemon 3.584 kB\r\r',
//     'Step 0 : FROM nginx',
//     'latest: Pulling from library/nginx',
//     '843e2bded498: Pulling fs layer',
//     '8c00acfb0175: Pulling fs layer',
//     '426ac73b867e: Pulling fs layer',
//     'd6c6bbd63f57: Pulling fs layer',
//     '4ac684e3f295: Pulling fs layer',
//     '91391bd3c4d3: Pulling fs layer',
//     'b4587525ed53: Pulling fs layer',
//     '0240288f5187: Pulling fs layer',
//     '28c109ec1572: Pulling fs layer',
//     '063d51552dac: Pulling fs layer',
//     'd8a70839d961: Pulling fs layer',
//     'ceab60537ad2: Pulling fs layer',
//     'd8a70839d961: Verifying Checksum',
//     'd8a70839d961: Download complete',
//     '4ac684e3f295: Verifying Checksum',
//     '4ac684e3f295: Download complete',
//     '0240288f5187: Verifying Checksum',
//     '0240288f5187: Download complete',
//     'd6c6bbd63f57: Verifying Checksum',
//     'd6c6bbd63f57: Download complete',
//     '8c00acfb0175: Verifying Checksum',
//     '8c00acfb0175: Download complete',
//     'ceab60537ad2: Verifying Checksum',
//     'ceab60537ad2: Download complete',
//     '28c109ec1572: Verifying Checksum',
//     '28c109ec1572: Download complete',
//     '426ac73b867e: Verifying Checksum',
//     '426ac73b867e: Download complete',
//     '063d51552dac: Verifying Checksum',
//     '063d51552dac: Download complete',
//     '91391bd3c4d3: Verifying Checksum',
//     '91391bd3c4d3: Download complete',
//     'b4587525ed53: Verifying Checksum',
//     'b4587525ed53: Download complete',
//     '843e2bded498: Verifying Checksum',
//     '843e2bded498: Download complete',
//     '843e2bded498: Pull complete',
//     '8c00acfb0175: Pull complete',
//     '426ac73b867e: Pull complete',
//     'd6c6bbd63f57: Pull complete',
//     '4ac684e3f295: Pull complete',
//     '91391bd3c4d3: Pull complete',
//     'b4587525ed53: Pull complete',
//     '0240288f5187: Pull complete',
//     '28c109ec1572: Pull complete',
//     '063d51552dac: Pull complete',
//     'd8a70839d961: Pull complete',
//     'ceab60537ad2: Pull complete',
//     'library/nginx:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.',
//     'Digest: sha256:302e0a331371acb77e434075d111ebe485a7f3605fdcf184185fcca73d65ac8b',
//     'Status: Downloaded newer image for nginx:latest',
//     ' ---> ceab60537ad2',
//     'Step 1 : COPY content /usr/share/nginx/html',
//     ' ---> d57e3a01e674',
//     'Removing intermediate container 84b42b1010a6',
//     'Successfully built d57e3a01e674',
//     '']
//}

With callback:

   var docker = new Docker();

  docker.command('info', function (err, data) {
    console.log('data = ', data);
  });

Typescript

import { Docker, Options } from 'docker-cli-js';

const options = new Options(
  /* machineName */ null,
  /* currentWorkingDirectory */ path.join(__dirname, '..', 'test', 'nginx'),
  /* echo*/ true,
);

let docker = new Docker(options);

docker.command('build -t nginximg .').then(function (data) {
  console.log('data = ', data);
});
  • docker run

docker.command('run --name nginxcont -d -p 80:80 nginximg').then(function (data) {
  console.log('data = ', data);
});

//data = {
//  command: 'docker run --name nginxcont -d -p 80:80 nginximg ',
//  raw: 'c0df7ad377630bd3bd05fba217e295434fa2d5da03c5216e531a9421530360dc\\n',
//  containerId: 'c0df7ad377630bd3bd05fba217e295434fa2d5da03c5216e531a9421530360dc'
//}
  • docker ps

docker.command('ps').then(function (data) {
  console.log('data = ', data);
});


//data =  { command: 'docker ps ',
//  raw: 'CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS
//                  NAMES\\nc0df7ad37763        nginximg           \\"nginx -g \'daemon off\\"   33 minutes ago      Up 33 minutes       0.0.0.0:80->80/tcp, 443/tcp   nginxcont\\n',
//containerList:
//[ { containerId: 'c0df7ad37763',
//  image: 'nginximg',
//  command: '"nginx -g \'daemon off"',
//  created: '33 minutes ago',
//  status: 'Up 33 minutes',
//  ports: '0.0.0.0:80->80/tcp, 443/tcp',
//  name: 'nginxcont' } ] }
  • docker images

docker.command('images').then(function (data) {
  console.log('data = ', data);
});


//data =  { command: 'docker images ',
//  raw: 'REPOSITORY             TAG                  IMAGE ID            CREATED             VIRTUAL SIZE\\nquobjectio/consul
//     0.5.2                c2e8640282e5        5 days ago          37.17 MB\\nquobjectio/consul      0.5.2c               74ae12b3b517        5 days ago          35.92 MB\\n<none>                 <none>               35682216ba6f        6 days ago
//35.92 MB\\nquobjectio/mongodb     3.0.7                5ca1d18839fb        10 days ago         347 MB\\nquobjectio/mongodb
//3.0.7d               5ca1d18839fb        10 days ago         347 MB\\nquobjectio/zookeeper   3.4.6-ubuntu-14.04   92eedb07b809        2 weeks ago         369.9 MB\\nswarm                  latest               6b40fe7724bd        2 weeks ago         15.6 MB\\nalpine                 3.2                  8a648f689ddb        9 weeks ago         5.249 MB\\nalpine                 latest               8a648f689ddb        9 weeks ago         5.249 MB\\nubuntu                 latest               91e54dfb1179
//3 months ago        188.4 MB\\nubuntu                 14.04                8251da35e7a7        3 months ago        188.4 MB\\nubuntu                 15.04                23635bbeb7c5        3 months ago        131.3 MB\\ntutum/mongodb          latest               e27c5e60a8f1        5 months ago        502.6 MB\\n',
//images:
//[ { repository: 'quobjectio/consul',
//  tag: '0.5.2',
//  'image id': 'c2e8640282e5',
//  created: '5 days ago',
//  'virtual size': '37.17 MB' },
//  { repository: 'quobjectio/consul',
//    tag: '0.5.2c',
//    'image id': '74ae12b3b517',
//    created: '5 days ago',
//    'virtual size': '35.92 MB' },
//  { repository: '<none>',
//    tag: '<none>',
//    'image id': '35682216ba6f',
//    created: '6 days ago',
//    'virtual size': '35.92 MB' },
//  { repository: 'quobjectio/mongodb',
//    tag: '3.0.7',
//    'image id': '5ca1d18839fb',
//    created: '10 days ago',
//    'virtual size': '347 MB' },
//  { repository: 'quobjectio/mongodb',
//    tag: '3.0.7d',
//    'image id': '5ca1d18839fb',
//    created: '10 days ago',
//    'virtual size': '347 MB' },
//  { repository: 'quobjectio/zookeeper',
//    tag: '3.4.6-ubuntu-14.04',
//    'image id': '92eedb07b809',
//    created: '2 weeks ago',
//    'virtual size': '369.9 MB' },
//  { repository: 'swarm',
//    tag: 'latest',
//    'image id': '6b40fe7724bd',
//    created: '2 weeks ago',
//    'virtual size': '15.6 MB' },
//  { repository: 'alpine',
//    tag: '3.2',
//    'image id': '8a648f689ddb',
//    created: '9 weeks ago',
//    'virtual size': '5.249 MB' },
//  { repository: 'alpine',
//    tag: 'latest',
//    'image id': '8a648f689ddb',
//    created: '9 weeks ago',
//    'virtual size': '5.249 MB' },
//  { repository: 'ubuntu',
//    tag: 'latest',
//    'image id': '91e54dfb1179',
//    created: '3 months ago',
//    'virtual size': '188.4 MB' },
//  { repository: 'ubuntu',
//    tag: '14.04',
//    'image id': '8251da35e7a7',
//    created: '3 months ago',
//    'virtual size': '188.4 MB' },
//  { repository: 'ubuntu',
//    tag: '15.04',
//    'image id': '23635bbeb7c5',
//    created: '3 months ago',
//    'virtual size': '131.3 MB' },
//  { repository: 'tutum/mongodb',
//    tag: 'latest',
//    'image id': 'e27c5e60a8f1',
//    created: '5 months ago',
//    'virtual size': '502.6 MB' } ] }
  • docker network ls

docker.command('network ls').then(function (data) {
  console.log('data = ', data);
});


//data = {
//  command: 'docker network ls ',
//  raw: 'NETWORK ID          NAME                                      DRIVER\\n4d6a0a35e87f        machine.1.ap-southeast-2.1.0.0.5/none     null                \\n042642d752f4        machine.1.ap-southeast-2.1.0.0.5/host     host                \\n6cc7e229d7c3        machine.1.ap-southeast-2.2.0.0.5/none     null                \\n4a6e627fc1dc        machine.1.ap-southeast-2.2.0.0.5/host     host                \\ne1b70f5af1c8        machine.1.ap-southeast-2.2.0.0.5/bridge   bridge              \\n1f5d449aca44        machine.1.ap-southeast-2.1.0.0.5/bridge   bridge              \\n',
//  network:
//   [{
//     'network id': '4d6a0a35e87f',
//     name: 'machine.1.ap-southeast-2.1.0.0.5/none',
//     driver: 'null'
//   },
//     {
//       'network id': '042642d752f4',
//       name: 'machine.1.ap-southeast-2.1.0.0.5/host',
//       driver: 'host'
//     },
//     {
//       'network id': '6cc7e229d7c3',
//       name: 'machine.1.ap-southeast-2.2.0.0.5/none',
//       driver: 'null'
//     },
//     {
//       'network id': '4a6e627fc1dc',
//       name: 'machine.1.ap-southeast-2.2.0.0.5/host',
//       driver: 'host'
//     },
//     {
//       'network id': 'e1b70f5af1c8',
//       name: 'machine.1.ap-southeast-2.2.0.0.5/bridge',
//       driver: 'bridge'
//     },
//     {
//       'network id': '1f5d449aca44',
//       name: 'machine.1.ap-southeast-2.1.0.0.5/bridge',
//       driver: 'bridge'
//     }]
//}
  • docker inspect

docker.command('inspect consul').then(function (data) {
  console.log('data = ', data);
});


//data =  { command: 'docker inspect consul ',
//  raw: '[\\n{\\n    \\"Id\\": \\"2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62\\",\\n    \\"Created\\": \\"2016-01-14T01:53:08.855624531Z\\",\\n    \\"Path\\": \\"/run.sh\\",\\n    \\"Args\\": [\\n        \\"agent\\",\\n        \\"-config-file\\",\\n        \\"/var/consul/config/config.json\\",\\n        \\"-bootstrap\\"\\n    ],\\n
//  \\"State\\": {\\n        \\"Status\\": \\"running\\",\\n        \\"Running\\": true,\\n        \\"Paused\\": false,\\n        \\"Restarting\\": false,\\n        \\"OOMKilled\\": false,\\n        \\"Dead\\": false,\\n        \\"Pid\\": 1913,\\n        \\"ExitCode\\": 0,\\n        \\"Error\\": \\"\\",\\n        \\"StartedAt\\": \\"2016-01-14T01:53:08.999561111Z\\",\\n        \\"FinishedAt\\": \\"0001-01-01T00:00:00Z\\"\\n    },\\n    \\"Image\\": \\"c2e8640282e5e8c0ed4efbffe661ebc9a3c6819fb3378f54eab6310a3754edc8\\",\\n    \\"ResolvConfPath\\": \\"/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/resolv.conf\\",\\n    \\"HostnamePath\\": \\"/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/hostname\\",\\n    \\"HostsPath\\": \\"/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/hosts\\",\\n    \\"LogPath\\": \\"/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62-json.log\\",\\n    \\"Name\\": \\"/consul\\",\\n    \\"RestartCount\\": 0,\\n    \\"Driver\\": \\"aufs\\",\\n    \\"ExecDriver\\": \\"native-0.2\\",\\n    \\"MountLabel\\": \\"\\",\\n    \\"ProcessLabel\\": \\"\\",\\n    \\"AppArmorProfile\\": \\"\\",\\n    \\"ExecIDs\\": null,\\n    \\"HostConfig\\": {\\n        \\"Binds\\": [\\n            \\"/fleetmake/data/consul/log:/var/consul/log\\",\\n            \\"/fleetmake/data/consul/data:/var/consul/data\\",\\n            \\"/fleetmake/data/consul/conf:/var/consul/config\\"\\n        ],\\n        \\"ContainerIDFile\\": \\"\\",\\n        \\"LxcConf\\": [],\\n        \\"Memory\\": 0,\\n        \\"MemoryReservation\\": 0,\\n
//     \\"MemorySwap\\": 0,\\n        \\"KernelMemory\\": 0,\\n        \\"CpuShares\\": 0,\\n        \\"CpuPeriod\\": 0,\\n        \\"CpusetCpus\\": \\"\\",\\n        \\"CpusetMems\\": \\"\\",\\n        \\"CpuQuota\\": 0,\\n        \\"BlkioWeight\\": 0,\\n        \\"OomKillDisable\\": false,\\n        \\"MemorySwappiness\\": -1,\\n        \\"Privileged\\": false,\\n        \\"PortBindings\\": {\\n            \\"8300/tcp\\": [\\n                {\\n                    \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8300\\"\\n                }\\n            ],\\n            \\"8301/tcp\\": [\\n                {\\n                    \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8301\\"\\n                }\\n            ],\\n            \\"8301/udp\\": [\\n                {\\n
// \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8301\\"\\n                }\\n            ],\\n
//    \\"8302/tcp\\": [\\n                {\\n                    \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8302\\"\\n                }\\n            ],\\n            \\"8302/udp\\": [\\n                {\\n
//        \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8302\\"\\n                }\\n            ],\\n
//           \\"8400/tcp\\": [\\n                {\\n                    \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8400\\"\\n                }\\n            ],\\n            \\"8500/tcp\\": [\\n                {\\n
//               \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8500\\"\\n                }\\n
//],\\n            \\"8600/tcp\\": [\\n                {\\n                    \\"HostIp\\": \\"\\",\\n
//  \\"HostPort\\": \\"8600\\"\\n                }\\n            ],\\n            \\"8600/udp\\": [\\n                {\\n                    \\"HostIp\\": \\"\\",\\n                    \\"HostPort\\": \\"8600\\"\\n                }\\n
//]\\n        },\\n        \\"Links\\": null,\\n        \\"PublishAllPorts\\": false,\\n        \\"Dns\\": [],\\n
//\\"DnsOptions\\": [],\\n        \\"DnsSearch\\": [],\\n        \\"ExtraHosts\\": null,\\n        \\"VolumesFrom\\": null,\\n        \\"Devices\\": [],\\n        \\"NetworkMode\\": \\"host\\",\\n        \\"IpcMode\\": \\"\\",\\n
//\\"PidMode\\": \\"\\",\\n        \\"UTSMode\\": \\"\\",\\n        \\"CapAdd\\": null,\\n        \\"CapDrop\\": null,\\n        \\"GroupAdd\\": null,\\n        \\"RestartPolicy\\": {\\n            \\"Name\\": \\"no\\",\\n            \\"MaximumRetryCount\\": 0\\n        },\\n        \\"SecurityOpt\\": null,\\n        \\"ReadonlyRootfs\\": false,\\n
//\\"Ulimits\\": null,\\n        \\"LogConfig\\": {\\n            \\"Type\\": \\"json-file\\",\\n            \\"Config\\": {}\\n        },\\n        \\"CgroupParent\\": \\"\\",\\n        \\"ConsoleSize\\": [\\n            0,\\n
//   0\\n        ],\\n        \\"VolumeDriver\\": \\"\\"\\n    },\\n    \\"GraphDriver\\": {\\n        \\"Name\\": \\"aufs\\",\\n        \\"Data\\": null\\n    },\\n    \\"Mounts\\": [\\n        {\\n            \\"Source\\": \\"/fleetmake/data/consul/log\\",\\n            \\"Destination\\": \\"/var/consul/log\\",\\n            \\"Mode\\": \\"\\",\\n
//    \\"RW\\": true\\n        },\\n        {\\n            \\"Source\\": \\"/fleetmake/data/consul/data\\",\\n
//  \\"Destination\\": \\"/var/consul/data\\",\\n            \\"Mode\\": \\"\\",\\n            \\"RW\\": true\\n        },\\n        {\\n            \\"Source\\": \\"/fleetmake/data/consul/conf\\",\\n            \\"Destination\\": \\"/var/consul/config\\",\\n            \\"Mode\\": \\"\\",\\n            \\"RW\\": true\\n        }\\n    ],\\n    \\"Config\\": {\\n        \\"Hostname\\": \\"atomix\\",\\n        \\"Domainname\\": \\"\\",\\n        \\"User\\": \\"\\",\\n
// \\"AttachStdin\\": false,\\n        \\"AttachStdout\\": false,\\n        \\"AttachStderr\\": false,\\n        \\"ExposedPorts\\": {\\n            \\"8300/tcp\\": {},\\n            \\"8301/tcp\\": {},\\n            \\"8301/udp\\": {},\\n
//           \\"8302/tcp\\": {},\\n            \\"8302/udp\\": {},\\n            \\"8400/tcp\\": {},\\n            \\"8500/tcp\\": {},\\n            \\"8600/tcp\\": {},\\n            \\"8600/udp\\": {}\\n        },\\n        \\"Tty\\": false,\\n        \\"OpenStdin\\": false,\\n        \\"StdinOnce\\": false,\\n        \\"Env\\": [\\n            \\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\",\\n            \\"CONSUL_VERSION=0.5.2\\",\\n            \\"CONSUL_SHA256=171cf4074bfca3b1e46112105738985783f19c47f4408377241b868affa9d445\\"\\n        ],\\n        \\"Cmd\\": [\\n            \\"agent\\",\\n            \\"-config-file\\",\\n            \\"/var/consul/config/config.json\\",\\n
//         \\"-bootstrap\\"\\n        ],\\n        \\"Image\\": \\"quobjectio/consul:0.5.2\\",\\n        \\"Volumes\\": {\\n            \\"/var/consul/config\\": {},\\n            \\"/var/consul/data\\": {},\\n            \\"/var/consul/log\\": {}\\n        },\\n        \\"WorkingDir\\": \\"\\",\\n        \\"Entrypoint\\": [\\n            \\"/run.sh\\"\\n
//],\\n        \\"OnBuild\\": null,\\n        \\"Labels\\": {},\\n        \\"StopSignal\\": \\"SIGTERM\\"\\n    },\\n    \\"NetworkSettings\\": {\\n        \\"Bridge\\": \\"\\",\\n        \\"SandboxID\\": \\"bc04a89e70c29498c25a32472c62a01b8de7d12b31a856b539d66a344df079a2\\",\\n        \\"HairpinMode\\": false,\\n        \\"LinkLocalIPv6Address\\": \\"\\",\\n        \\"LinkLocalIPv6PrefixLen\\": 0,\\n        \\"Ports\\": {},\\n        \\"SandboxKey\\": \\"/var/run/docker/netns/default\\",\\n        \\"SecondaryIPAddresses\\": null,\\n        \\"SecondaryIPv6Addresses\\": null,\\n
//\\"EndpointID\\": \\"\\",\\n        \\"Gateway\\": \\"\\",\\n        \\"GlobalIPv6Address\\": \\"\\",\\n        \\"GlobalIPv6PrefixLen\\": 0,\\n        \\"IPAddress\\": \\"\\",\\n        \\"IPPrefixLen\\": 0,\\n        \\"IPv6Gateway\\": \\"\\",\\n        \\"MacAddress\\": \\"\\",\\n        \\"Networks\\": {\\n            \\"host\\": {\\n
//\\"EndpointID\\": \\"aeba20b34a47596646044493147fb1eafd5b4b76a3688f9b5c450b1dfe2bfdfb\\",\\n                \\"Gateway\\": \\"\\",\\n                \\"IPAddress\\": \\"\\",\\n                \\"IPPrefixLen\\": 0,\\n                \\"IPv6Gateway\\": \\"\\",\\n                \\"GlobalIPv6Address\\": \\"\\",\\n                \\"GlobalIPv6PrefixLen\\": 0,\\n                \\"MacAddress\\": \\"\\"\\n            }\\n        }\\n    }\\n}\\n]\\n',
//object:
//[ { Id: '2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62',
//  Created: '2016-01-14T01:53:08.855624531Z',
//  Path: '/run.sh',
//  Args:
//   [ 'agent',
//     '-config-file',
//     '/var/consul/config/config.json',
//     '-bootstrap' ],
//  State:
//   { Status: 'running',
//     Running: true,
//     Paused: false,
//     Restarting: false,
//     OOMKilled: false,
//     Dead: false,
//     Pid: 1913,
//     ExitCode: 0,
//     Error: '',
//     StartedAt: '2016-01-14T01:53:08.999561111Z',
//     FinishedAt: '0001-01-01T00:00:00Z' },
//  Image: 'c2e8640282e5e8c0ed4efbffe661ebc9a3c6819fb3378f54eab6310a3754edc8',
//  ResolvConfPath: '/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/resolv.conf',
//  HostnamePath: '/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/hostname',
//  HostsPath: '/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/hosts',
//  LogPath: '/var/lib/docker/containers/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62/2e91854b5dd01a1bb9a8c67757264f32cd512385502f365321771bf669b0ff62-json.log',
//  Name: '/consul',
//  RestartCount: 0,
//  Driver: 'aufs',
//  ExecDriver: 'native-0.2',
//  MountLabel: '',
//  ProcessLabel: '',
//  AppArmorProfile: '',
//  ExecIDs: null,
//  HostConfig:
//   { Binds:
//      [ '/fleetmake/data/consul/log:/var/consul/log',
//        '/fleetmake/data/consul/data:/var/consul/data',
//        '/fleetmake/data/consul/conf:/var/consul/config' ],
//     ContainerIDFile: '',
//     LxcConf: [],
//     Memory: 0,
//     MemoryReservation: 0,
//     MemorySwap: 0,
//     KernelMemory: 0,
//     CpuShares: 0,
//     CpuPeriod: 0,
//     CpusetCpus: '',
//     CpusetMems: '',
//     CpuQuota: 0,
//     BlkioWeight: 0,
//     OomKillDisable: false,
//     MemorySwappiness: -1,
//     Privileged: false,
//     PortBindings:
//      { '8300/tcp': [ { HostIp: '', HostPort: '8300' } ],
//        '8301/tcp': [ { HostIp: '', HostPort: '8301' } ],
//        '8301/udp': [ { HostIp: '', HostPort: '8301' } ],
//        '8302/tcp': [ { HostIp: '', HostPort: '8302' } ],
//        '8302/udp': [ { HostIp: '', HostPort: '8302' } ],
//        '8400/tcp': [ { HostIp: '', HostPort: '8400' } ],
//        '8500/tcp': [ { HostIp: '', HostPort: '8500' } ],
//        '8600/tcp': [ { HostIp: '', HostPort: '8600' } ],
//        '8600/udp': [ { HostIp: '', HostPort: '8600' } ] },
//     Links: null,
//     PublishAllPorts: false,
//     Dns: [],
//     DnsOptions: [],
//     DnsSearch: [],
//     ExtraHosts: null,
//     VolumesFrom: null,
//     Devices: [],
//     NetworkMode: 'host',
//     IpcMode: '',
//     PidMode: '',
//     UTSMode: '',
//     CapAdd: null,
//     CapDrop: null,
//     GroupAdd: null,
//     RestartPolicy: { Name: 'no', MaximumRetryCount: 0 },
//     SecurityOpt: null,
//     ReadonlyRootfs: false,
//     Ulimits: null,
//     LogConfig: { Type: 'json-file', Config: {} },
//     CgroupParent: '',
//     ConsoleSize: [ 0, 0 ],
//     VolumeDriver: '' },
//  GraphDriver: { Name: 'aufs', Data: null },
//  Mounts:
//   [ { Source: '/fleetmake/data/consul/log',
//     Destination: '/var/consul/log',
//     Mode: '',
//     RW: true },
//     { Source: '/fleetmake/data/consul/data',
//       Destination: '/var/consul/data',
//       Mode: '',
//       RW: true },
//     { Source: '/fleetmake/data/consul/conf',
//       Destination: '/var/consul/config',
//       Mode: '',
//       RW: true } ],
//  Config:
//   { Hostname: 'atomix',
//     Domainname: '',
//     User: '',
//     AttachStdin: false,
//     AttachStdout: false,
//     AttachStderr: false,
//     ExposedPorts:
//      { '8300/tcp': {},
//        '8301/tcp': {},
//        '8301/udp': {},
//        '8302/tcp': {},
//        '8302/udp': {},
//        '8400/tcp': {},
//        '8500/tcp': {},
//        '8600/tcp': {},
//        '8600/udp': {} },
//     Tty: false,
//     OpenStdin: false,
//     StdinOnce: false,
//     Env:
//      [ 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
//        'CONSUL_VERSION=0.5.2',
//        'CONSUL_SHA256=171cf4074bfca3b1e46112105738985783f19c47f4408377241b868affa9d445' ],
//     Cmd:
//      [ 'agent',
//        '-config-file',
//        '/var/consul/config/config.json',
//        '-bootstrap' ],
//     Image: 'quobjectio/consul:0.5.2',
//     Volumes:
//      { '/var/consul/config': {},
//        '/var/consul/data': {},
//        '/var/consul/log': {} },
//     WorkingDir: '',
//     Entrypoint: [ '/run.sh' ],
//     OnBuild: null,
//     Labels: {},
//     StopSignal: 'SIGTERM' },
//  NetworkSettings:
//   { Bridge: '',
//     SandboxID: 'bc04a89e70c29498c25a32472c62a01b8de7d12b31a856b539d66a344df079a2',
//     HairpinMode: false,
//     LinkLocalIPv6Address: '',
//     LinkLocalIPv6PrefixLen: 0,
//     Ports: {},
//     SandboxKey: '/var/run/docker/netns/default',
//     SecondaryIPAddresses: null,
//     SecondaryIPv6Addresses: null,
//     EndpointID: '',
//     Gateway: '',
//     GlobalIPv6Address: '',
//     GlobalIPv6PrefixLen: 0,
//     IPAddress: '',
//     IPPrefixLen: 0,
//     IPv6Gateway: '',
//     MacAddress: '',
//     Networks:
//      { host:
//         { EndpointID: 'aeba20b34a47596646044493147fb1eafd5b4b76a3688f9b5c450b1dfe2bfdfb',
//           Gateway: '',
//           IPAddress: '',
//           IPPrefixLen: 0,
//           IPv6Gateway: '',
//           GlobalIPv6Address: '',
//           GlobalIPv6PrefixLen: 0,
//           MacAddress: '' } } } } ] }
  • docker info

docker.command('info').then(function (data) {
  console.log('data = ', data);
});

//{ command: 'docker info  ',
//  raw: '"Containers: 1\\n Running: 0\\n Paused: 0\\n Stopped: 1\\nImages: 835\\nServer Version: 1.10.3\\nStorage Driver: aufs\\n Root Dir: /var/lib/docker/aufs\\n Backing Filesystem: extfs\\n Dirs: 836\\n Dirperm1 Supported: true\\nExecution Driver: native-0.2\\nLogging Driver: json-file\\nPlugins: \\n Volume: local\\n Network: bridge null host\\nKernel Version: 3.19.0-39-generic\\nOperating System: Ubuntu 14.04.3 LTS\\nOSType: linux\\nArchitecture: x86_64\\nCPUs: 8\\nTotal Memory: 31.31 GiB\\nName: atomix\\nID: 3KBH:CSNL:ZFBD:7HG4:QHTG:LXN5:37YQ:TUXL:KJGP:JFL7:JLVU:77PL\\nUsername: quobject\\nRegistry: https://index.docker.io/v1/\\n"',
//  object:
//  { containers: '1',
//    running: '0',
//    paused: '0',
//    stopped: '1',
//    images: '835',
//    server_version: '1.10.3',
//    storage_driver: 'aufs',
//    root_dir: '/var/lib/docker/aufs',
//    backing_filesystem: 'extfs',
//    dirs: '836',
//    dirperm_1_supported: 'true',
//    execution_driver: 'native-0.2',
//    logging_driver: 'json-file',
//    plugins: '',
//    volume: 'local',
//    network: 'bridge null host',
//    kernel_version: '3.19.0-39-generic',
//    operating_system: 'Ubuntu 14.04.3 LTS',
//    os_type: 'linux',
//    architecture: 'x86_64',
//    cp_us: '8',
//    total_memory: '31.31 GiB',
//    name: 'atomix',
//    id: '3KBH:CSNL:ZFBD:7HG4:QHTG:LXN5:37YQ:TUXL:KJGP:JFL7:JLVU:77PL',
//    username: 'quobject',
//    registry: 'https://index.docker.io/v1/' } }
  • docker search
docker.command('search nginxcont').then(function (data) {
  console.log('data = ', data);
});

// data = {
//   command: 'docker   search nginxcont ',
//   raw:
//     'NAME                         DESCRIPTION         STARS               OFFICIAL            AUTOMATED\nprotonyx76/nginxcontainer                        0                                       \nddavie2323/nginxhelloworld   NGINXContainer      0                                       \n',
//   images:
//     [{
//       name: 'protonyx76/nginxcontainer',
//       description: '',
//       stars: '0',
//       official: '',
//       automated: ''
//     },
//       {
//         name: 'ddavie2323/nginxhelloworld',
//         description: 'NGINXContainer',
//         stars: '0',
//         official: '',
//         automated: ''
//       }]
// }
  • docker login
docker.command('login -u myusername -p mypassword').then(function (data) {
  console.log('data = ', data);
  // Successful login
 }, function (rejected) {
 	console.log('rejected = ', rejected);
 	// Failed login
 });

// data =  { command: 'docker   login -u myusername -p mypassword ',
//          raw: 'Login Succeeded\n',
//          login: 'Login Succeeded' }

// rejected =  error: 'Error: Command failed: docker   login -u fakeUsername -p fakePassword 
//        WARNING! Using --password via the CLI is insecure. Use --password-stdin.
//        Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
//        ' stdout = '' stderr = 'WARNING! Using --password via the CLI is insecure. Use --password-stdin.
//        Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
  • docker pull
docker.command('pull nginx:latest').then(function (data) {
  console.log('data = ', data);
  // Successfully pulled image
 }, function (rejected) {
 	console.log('rejected = ', rejected);
 	// Failed to pull image
 });

// data =  { command: 'docker   pull nginx:1.15.2 ',
//           raw:'1.15.2: Pulling from library/nginx\nDigest: sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424\nStatus: Image is up to date for nginx:1.15.2\n',
//           login: '1.15.2: Pulling from library/nginx\nDigest: sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424\nStatus: Image is up to date for nginx:1.15.2' }

// rejected =  error: 'Error: Command failed: docker   pull nginx:999.999.999 
//      Error response from daemon: manifest for nginx:999.999.999 not found
//      ' stdout = '' stderr = 'Error response from daemon: manifest for nginx:999.999.999 not found
  • docker push
docker.command('push nginx:latest').then(function (data) {
  console.log('data = ', data);
  // Successfully pulled image
 }, function (rejected) {
 	console.log('rejected = ', rejected);
 	// Failed to pull image
 });

// data =  { command: 'docker   push mattsoghoian/test ',
//          raw:
//           'The push refers to repository [docker.io/<username>/<repo>]\n08d25fa0442e: Preparing\na8c4aeeaa045: Preparing\ncdb3f9544e4c: Preparing\n08d25fa0442e: Mounted from library/nginx\na8c4aeeaa045: Mounted from library/nginx\ncdb3f9544e4c: Mounted from library/nginx\nlatest: digest: sha256:4ffd9758ea9ea360fd87d0cee7a2d1cf9dba630bb57ca36b3108dcd3708dc189 size: 948\n',
//          login:
//           'The push refers to repository [docker.io/<username>/<repo>]\n08d25fa0442e: Preparing\na8c4aeeaa045: Preparing\ncdb3f9544e4c: Preparing\n08d25fa0442e: Mounted from library/nginx\na8c4aeeaa045: Mounted from library/nginx\ncdb3f9544e4c: Mounted from library/nginx\nlatest: digest: sha256:4ffd9758ea9ea360fd87d0cee7a2d1cf9dba630bb57ca36b3108dcd3708dc189 size: 948' }

// rejected =  error: 'Error: Command failed: docker   push nginx 
//        An image does not exist locally with the tag: nginx
//        ' stdout = 'The push refers to repository [docker.io/library/nginx]
//        ' stderr = 'An image does not exist locally with the tag: nginx

// rejected =  error: 'Error: Command failed: docker   push nginx 
//        errors:
//        denied: requested access to the resource is denied
//        unauthorized: authentication required
//        ' stdout = 'The push refers to repository [docker.io/library/nginx]
//        08d25fa0442e: Preparing
//        a8c4aeeaa045: Preparing
//        cdb3f9544e4c: Preparing
//        cdb3f9544e4c: Layer already exists
//        08d25fa0442e: Layer already exists
//        a8c4aeeaa045: Layer already exists
//        ' stderr = 'errors:
//        denied: requested access to the resource is denied
//        unauthorized: authentication required
//        '

License

MIT