added dockerInfo()
This commit is contained in:
parent
bda8412f94
commit
6d6589a373
50
README.md
50
README.md
@ -82,14 +82,13 @@ si.cpu()
|
||||
|
||||
(last 7 major and minor version releases)
|
||||
|
||||
- Version 4.6.0: added `dockerInfo()`
|
||||
- Version 4.5.0: `fsOpenFiles()` added open file descriptor count
|
||||
- Version 4.4.0: `dockerContainers()` added started, finished time
|
||||
- Version 4.3.0: `dockerContainers()` `dockerStats()` added restartCount
|
||||
- Version 4.2.0: `networkInterfaceDefault()` time delay fix (linux)
|
||||
- Version 4.1.0: `versions()` added python3, pip, pip3, java
|
||||
- Version 4.0.0: new version ... read the [detailed changelog][changelog-url] to see all breaking changes
|
||||
- Version 3.54.0: added TypeScript type definitions
|
||||
- Version 3.53.0: `versions()` added perl, python, gcc
|
||||
- ...
|
||||
|
||||
You can find all changes here: [detailed changelog][changelog-url]
|
||||
@ -452,6 +451,53 @@ I also created a nice little command line tool called [mmon][mmon-github-url] (
|
||||
|
||||
| Function | Result object | Linux | BSD | Mac | Win | Sun | Comments |
|
||||
| --------------- | ------------- | ----- | ------- | --- | --- | --- | -------- |
|
||||
| si.dockerInfo(cb) | {...} | X | X | X | X | X | returns general docker info |
|
||||
| | ID | X | X | X | X | X | Docker ID |
|
||||
| | Containers | X | X | X | X | X | number of containers |
|
||||
| | ContainersRunning | X | X | X | X | X | number of running containers |
|
||||
| | ContainersPaused | X | X | X | X | X | number of paused containers |
|
||||
| | ContainersStopped | X | X | X | X | X | number of stopped containers |
|
||||
| | Images | X | X | X | X | X | number of images |
|
||||
| | Driver | X | X | X | X | X | driver (e.g. 'devicemapper', 'overlay2') |
|
||||
| | MemoryLimit | X | X | X | X | X | has memory limit |
|
||||
| | SwapLimit | X | X | X | X | X | has swap limit |
|
||||
| | KernelMemory | X | X | X | X | X | has kernal memory |
|
||||
| | CpuCfsPeriod | X | X | X | X | X | has CpuCfsPeriod |
|
||||
| | CpuCfsQuota | X | X | X | X | X | has CpuCfsQuota |
|
||||
| | CPUShares | X | X | X | X | X | has CPUShares |
|
||||
| | CPUSet | X | X | X | X | X | has CPUShares |
|
||||
| | IPv4Forwarding | X | X | X | X | X | has IPv4Forwarding |
|
||||
| | BridgeNfIptables | X | X | X | X | X | has BridgeNfIptables |
|
||||
| | BridgeNfIp6tables | X | X | X | X | X | has BridgeNfIp6tables |
|
||||
| | Debug | X | X | X | X | X | Debug on |
|
||||
| | NFd | X | X | X | X | X | named data networking forwarding daemon |
|
||||
| | OomKillDisable | X | X | X | X | X | out-of-memory kill disabled |
|
||||
| | NGoroutines | X | X | X | X | X | number NGoroutines |
|
||||
| | SystemTime | X | X | X | X | X | docker SystemTime |
|
||||
| | LoggingDriver | X | X | X | X | X | logging driver e.g. 'json-file' |
|
||||
| | CgroupDriver | X | X | X | X | X | cgroup driver e.g. 'cgroupfs' |
|
||||
| | NEventsListener | X | X | X | X | X | number NEventsListeners |
|
||||
| | KernelVersion | X | X | X | X | X | docker kernel version |
|
||||
| | OperatingSystem | X | X | X | X | X | docker OS e.g. 'Docker for Mac' |
|
||||
| | OSType | X | X | X | X | X | OSType e.g. 'linux' |
|
||||
| | Architecture | X | X | X | X | X | architecture e.g. x86_64 |
|
||||
| | NCPU | X | X | X | X | X | number of CPUs |
|
||||
| | MemTotal | X | X | X | X | X | memory total |
|
||||
| | DockerRootDir | X | X | X | X | X | docker root directory |
|
||||
| | HttpProxy | X | X | X | X | X | http proxy |
|
||||
| | HttpsProxy | X | X | X | X | X | https proxy |
|
||||
| | NoProxy | X | X | X | X | X | NoProxy |
|
||||
| | Name | X | X | X | X | X | Name |
|
||||
| | Labels | X | X | X | X | X | array of labels |
|
||||
| | ExperimentalBuild | X | X | X | X | X | is experimental build |
|
||||
| | ServerVersion | X | X | X | X | X | server version |
|
||||
| | ClusterStore | X | X | X | X | X | cluster store |
|
||||
| | ClusterAdvertise | X | X | X | X | X | cluster advertise |
|
||||
| | DefaultRuntime | X | X | X | X | X | default runtime e.g. 'runc' |
|
||||
| | LiveRestoreEnabled | X | X | X | X | X | live store enabled |
|
||||
| | Isolation | X | X | X | X | X | isolation |
|
||||
| | InitBinary | X | X | X | X | X | init binary |
|
||||
| | ProductLicense | X | X | X | X | X | product license |
|
||||
| si.dockerContainers(all, cb) | [{...}] | X | X | X | X | X | returns array of active/all docker containers |
|
||||
| | [0].id | X | X | X | X | X | ID of container |
|
||||
| | [0].name | X | X | X | X | X | name of container |
|
||||
|
||||
470
docs/docker.html
470
docs/docker.html
@ -65,6 +65,476 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>si.dockerInfo(cb)</td>
|
||||
<td>{...}</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>returns general docker info</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ID</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>Docker ID</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Containers</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number of containers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ContainersRunning</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number of running containers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ContainersPaused</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number of paused containers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ContainersStopped</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number of stopped containers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Images</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number of images</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Driver</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>driver (e.g. 'devicemapper', 'overlay2')</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>MemoryLimit</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has memory limit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>SwapLimit</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has swap limit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>KernelMemory</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has kernal memory</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>CpuCfsPeriod</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has CpuCfsPeriod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>CpuCfsQuota</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has CpuCfsQuota</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>CPUShares</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has CPUShares</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>CPUSet</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has CPUShares</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>IPv4Forwarding</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has IPv4Forwarding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>BridgeNfIptables</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has BridgeNfIptables</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>BridgeNfIp6tables</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>has BridgeNfIp6tables</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Debug</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>Debug on</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>NFd</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>named data networking forwarding daemon</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>OomKillDisable</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>out-of-memory kill disabled</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>NGoroutines</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number NGoroutines</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>SystemTime</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>docker SystemTime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>LoggingDriver</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>logging driver e.g. 'json-file'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>CgroupDriver</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>cgroup driver e.g. 'cgroupfs'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>NEventsListener</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number NEventsListeners</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>KernelVersion</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>docker kernel version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>OperatingSystem</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>docker OS e.g. 'Docker for Mac'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>OSType</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>OSType e.g. 'linux'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Architecture</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>architecture e.g. x86_64</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>NCPU</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>number of CPUs</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>MemTotal</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>memory total</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>DockerRootDir</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>docker root directory</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>HttpProxy</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>http proxy</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>HttpsProxy</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>https proxy</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>NoProxy</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>NoProxy</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Name</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>Name</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Labels</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>array of labels</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ExperimentalBuild</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>is experimental build</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ServerVersion</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>server version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ClusterStore</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>cluster store</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ClusterAdvertise</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>cluster advertise</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>DefaultRuntime</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>default runtime e.g. 'runc'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>LiveRestoreEnabled</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>live store enabled</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Isolation</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>isolation</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>InitBinary</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>init binary</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ProductLicense</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>X</td>
|
||||
<td>product license</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>si.dockerContainers(all, cb)</td>
|
||||
<td>[{...}]</td>
|
||||
|
||||
@ -80,6 +80,11 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">4.6.0</th>
|
||||
<td>2019-05-27</td>
|
||||
<td><span class="code">dockerInfo()</span> added dockerInfo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">4.5.1</th>
|
||||
<td>2019-05-17</td>
|
||||
|
||||
@ -170,7 +170,7 @@
|
||||
<img class="logo" src="assets/logo.png">
|
||||
<div class="title">systeminformation</div>
|
||||
<div class="subtitle"><span id="typed"></span></div>
|
||||
<div class="version">Current Version: <span id="version">4.5.1</span></div>
|
||||
<div class="version">Current Version: <span id="version">4.6.0</span></div>
|
||||
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
|
||||
</div>
|
||||
<div class="down">
|
||||
@ -193,7 +193,7 @@
|
||||
</div>
|
||||
<div class="row number-section">
|
||||
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
|
||||
<div class="numbers">8,412</div>
|
||||
<div class="numbers">8,512</div>
|
||||
<div class="title">Lines of code</div>
|
||||
</div>
|
||||
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
|
||||
@ -201,7 +201,7 @@
|
||||
<div class="title">Downloads last month</div>
|
||||
</div>
|
||||
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
|
||||
<div class="numbers">157</div>
|
||||
<div class="numbers">160</div>
|
||||
<div class="title">Dependends</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -27,6 +27,69 @@ let _docker_last_read = 0;
|
||||
// --------------------------
|
||||
// get containers (parameter all: get also inactive/exited containers)
|
||||
|
||||
function dockerInfo(callback) {
|
||||
return new Promise((resolve) => {
|
||||
process.nextTick(() => {
|
||||
if (!_docker_socket) {
|
||||
_docker_socket = new DockerSocket();
|
||||
}
|
||||
const result = {};
|
||||
|
||||
_docker_socket.getInfo(data => {
|
||||
result.ID = data.ID;
|
||||
result.Containers = data.Containers;
|
||||
result.ContainersRunning = data.ContainersRunning;
|
||||
result.ContainersPaused = data.ContainersPaused;
|
||||
result.ContainersStopped = data.ContainersStopped;
|
||||
result.Images = data.Images;
|
||||
result.Driver = data.Driver;
|
||||
result.MemoryLimit = data.MemoryLimit;
|
||||
result.SwapLimit = data.SwapLimit;
|
||||
result.KernelMemory = data.KernelMemory;
|
||||
result.CpuCfsPeriod = data.CpuCfsPeriod;
|
||||
result.CpuCfsQuota = data.CpuCfsQuota;
|
||||
result.CPUShares = data.CPUShares;
|
||||
result.CPUSet = data.CPUSet;
|
||||
result.IPv4Forwarding = data.IPv4Forwarding;
|
||||
result.BridgeNfIptables = data.BridgeNfIptables;
|
||||
result.BridgeNfIp6tables = data.BridgeNfIp6tables;
|
||||
result.Debug = data.Debug;
|
||||
result.NFd = data.NFd;
|
||||
result.OomKillDisable = data.OomKillDisable;
|
||||
result.NGoroutines = data.NGoroutines;
|
||||
result.SystemTime = data.SystemTime;
|
||||
result.LoggingDriver = data.LoggingDriver;
|
||||
result.CgroupDriver = data.CgroupDriver;
|
||||
result.NEventsListener = data.NEventsListener;
|
||||
result.KernelVersion = data.KernelVersion;
|
||||
result.OperatingSystem = data.OperatingSystem;
|
||||
result.OSType = data.OSType;
|
||||
result.Architecture = data.Architecture;
|
||||
result.NCPU = data.NCPU;
|
||||
result.MemTotal = data.MemTotal;
|
||||
result.DockerRootDir = data.DockerRootDir;
|
||||
result.HttpProxy = data.HttpProxy;
|
||||
result.HttpsProxy = data.HttpsProxy;
|
||||
result.NoProxy = data.NoProxy;
|
||||
result.Name = data.Name;
|
||||
result.Labels = data.Labels;
|
||||
result.ExperimentalBuild = data.ExperimentalBuild;
|
||||
result.ServerVersion = data.ServerVersion;
|
||||
result.ClusterStore = data.ClusterStore;
|
||||
result.ClusterAdvertise = data.ClusterAdvertise;
|
||||
result.DefaultRuntime = data.DefaultRuntime;
|
||||
result.LiveRestoreEnabled = data.LiveRestoreEnabled;
|
||||
result.Isolation = data.Isolation;
|
||||
result.InitBinary = data.InitBinary;
|
||||
result.ProductLicense = data.ProductLicense;
|
||||
if (callback) { callback(result); }
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
exports.dockerInfo = dockerInfo;
|
||||
|
||||
function dockerContainers(all, callback) {
|
||||
|
||||
|
||||
@ -19,6 +19,42 @@ const socketPath = isWin ? '//./pipe/docker_engine' : '/var/run/docker.sock';
|
||||
|
||||
class DockerSocket {
|
||||
|
||||
getInfo(callback) {
|
||||
try {
|
||||
|
||||
let socket = net.createConnection({ path: socketPath });
|
||||
let alldata = '';
|
||||
let data;
|
||||
|
||||
socket.on('connect', () => {
|
||||
socket.write('GET http:/info HTTP/1.0\r\n\r\n');
|
||||
});
|
||||
|
||||
socket.on('data', data => {
|
||||
alldata = alldata + data.toString();
|
||||
});
|
||||
|
||||
socket.on('error', () => {
|
||||
socket = false;
|
||||
callback({});
|
||||
});
|
||||
|
||||
socket.on('end', () => {
|
||||
let startbody = alldata.indexOf('\r\n\r\n');
|
||||
alldata = alldata.substring(startbody + 4);
|
||||
socket = false;
|
||||
try {
|
||||
data = JSON.parse(alldata);
|
||||
callback(data);
|
||||
} catch (err) {
|
||||
callback({});
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
callback({});
|
||||
}
|
||||
}
|
||||
|
||||
listContainers(all, callback) {
|
||||
try {
|
||||
|
||||
|
||||
51
lib/index.d.ts
vendored
51
lib/index.d.ts
vendored
@ -420,6 +420,55 @@ export namespace Systeminformation {
|
||||
|
||||
// 8. Docker
|
||||
|
||||
interface DockerInfoData {
|
||||
ID: string;
|
||||
Containers: number;
|
||||
ContainersRunning: number;
|
||||
ContainersPaused: number;
|
||||
ContainersStopped: number;
|
||||
Images: number;
|
||||
Driver: string;
|
||||
MemoryLimit: boolean;
|
||||
SwapLimit: boolean;
|
||||
KernelMemory: boolean;
|
||||
CpuCfsPeriod: boolean;
|
||||
CpuCfsQuota: boolean;
|
||||
CPUShares: boolean;
|
||||
CPUSet: boolean;
|
||||
IPv4Forwarding: boolean;
|
||||
BridgeNfIptables: boolean;
|
||||
BridgeNfIp6tables: boolean;
|
||||
Debug: boolean;
|
||||
NFd: number;
|
||||
OomKillDisable: boolean;
|
||||
NGoroutines: number;
|
||||
SystemTime: string;
|
||||
LoggingDriver: string;
|
||||
CgroupDriver: string;
|
||||
NEventsListener: number;
|
||||
KernelVersion: string;
|
||||
OperatingSystem: string;
|
||||
OSType: string;
|
||||
Architecture: string;
|
||||
NCPU: number;
|
||||
MemTotal: number;
|
||||
DockerRootDir: string;
|
||||
HttpProxy: string;
|
||||
HttpsProxy: string;
|
||||
NoProxy: string;
|
||||
Name: string;
|
||||
Labels: string[];
|
||||
ExperimentalBuild: boolean;
|
||||
ServerVersion: string;
|
||||
ClusterStore: string;
|
||||
ClusterAdvertise: string;
|
||||
DefaultRuntime: string;
|
||||
LiveRestoreEnabled: boolean;
|
||||
Isolation: string;
|
||||
InitBinary: string;
|
||||
ProductLicense: string;
|
||||
}
|
||||
|
||||
interface DockerContainerData {
|
||||
id: string;
|
||||
name: string;
|
||||
@ -537,7 +586,7 @@ export function processes(cb?: (data: Systeminformation.ProcessesData) => any):
|
||||
export function processLoad(processName: string, cb?: (data: Systeminformation.ProcessesProcessLoadData) => any): Promise<Systeminformation.ProcessesProcessLoadData>;
|
||||
export function services(serviceName: string, cb?: (data: Systeminformation.ServicesData[]) => any): Promise<Systeminformation.ServicesData[]>;
|
||||
|
||||
|
||||
export function dockerInfo(cb?: (data: Systeminformation.DockerInfoData[]) => any): Promise<Systeminformation.DockerInfoData[]>;
|
||||
export function dockerContainers(all?: boolean, cb?: (data: Systeminformation.DockerContainerData[]) => any): Promise<Systeminformation.DockerContainerData[]>;
|
||||
export function dockerContainerStats(id?: string, cb?: (data: Systeminformation.DockerContainerStatsData[]) => any): Promise<Systeminformation.DockerContainerStatsData[]>;
|
||||
export function dockerContainerProcesses(id?: string, cb?: (data: any) => any): Promise<any>;
|
||||
|
||||
@ -357,6 +357,7 @@ exports.users = users.users;
|
||||
exports.inetChecksite = internet.inetChecksite;
|
||||
exports.inetLatency = internet.inetLatency;
|
||||
|
||||
exports.dockerInfo = docker.dockerInfo;
|
||||
exports.dockerContainers = docker.dockerContainers;
|
||||
exports.dockerContainerStats = docker.dockerContainerStats;
|
||||
exports.dockerContainerProcesses = docker.dockerContainerProcesses;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user