Docker Community Forums

Share and learn in the Docker community.

Extraneous output in Docker API responses when using Unix domain socket?

I’m writing an app that communicates with the Unix domain socket (/var/run/docker.sock) to control the Docker daemon.

On some requests, I’ve noticed there seems to be extraneous output being injected into the response. Here is a sample of the output (each [in] line is a separate line of output):

Connecting to the socket.
Connected.
Request sent.
[in] HTTP/1.1 200 OK
[in] Api-Version: 1.39
[in] Content-Type: application/json
[in] Docker-Experimental: false
[in] Ostype: linux
[in] Server: Docker/18.09.7-ce (linux)
[in] Date: Mon, 15 Jul 2019 18:21:53 GMT
[in] Connection: close
[in] Transfer-Encoding: chunked
[in]
[in] cff
[in] [{"Id":"aee24535de51249f48ba53116f0f5e4ca6b1fb3e39b39cc90b182aaa4ade06c6"...
[in]
[in] 0
[in]

The lines containing “cff” and a “0” are extra. They seem to show up anytime I make the request for containers/json. The “cff” also changes, it appears to be an incrementing hex counter (it was cfc earlier, a later run returned d02).

The API docs make no obvious mention of this extra data (at least in the documentation for the “Get Containers” endpoint at /containers/json")

I can filter out the extra data obviously, but I’m curious as to why it is there and what its purpose is.

    docker3:~# docker info
Containers: 3
 Running: 3
 Paused: 0
 Stopped: 0
Images: 7
Server Version: 18.09.7-ce
Storage Driver: zfs
 Zpool: error while getting pool information strconv.ParseUint: parsing "": invalid syntax
 Zpool Health: not available
 Parent Dataset: pool0/docker
 Space Used By Parent: 2043408384
 Space Available: 70557466624
 Parent Quota: no
 Compression: lz4
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 85f6aa58b8a3170aec9824568f7a31832878b603
runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
init version: v0.18.0 (expected: fec3683b971d9c3ef73f284f176672c44b448662)
Kernel Version: 4.19.53-0-vanilla
Operating System: Alpine Linux v3.10
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.822GiB
Name: docker3
ID: ***
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false