1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Add documentation

This commit is contained in:
Guillaume J. Charmes 2013-09-11 15:14:33 -07:00
parent e854b7b2e6
commit 082d142024
No known key found for this signature in database
GPG key ID: B33E4642CB6E3FF3
4 changed files with 1251 additions and 7 deletions

12
api.go
View file

@ -21,10 +21,12 @@ import (
"strings"
)
const APIVERSION = 1.5
const DEFAULTHTTPHOST = "127.0.0.1"
const DEFAULTHTTPPORT = 4243
const DEFAULTUNIXSOCKET = "/var/run/docker.sock"
const (
APIVERSION = 1.6
DEFAULTHTTPHOST = "127.0.0.1"
DEFAULTHTTPPORT = 4243
DEFAULTUNIXSOCKET = "/var/run/docker.sock"
)
type HttpApiFunc func(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error
@ -794,7 +796,7 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
if !c.Config.Tty && version >= 1.4 {
if !c.Config.Tty && version >= 1.6 {
errStream = utils.NewStdWriter(outStream, utils.Stderr)
outStream = utils.NewStdWriter(outStream, utils.Stdout)
} else {

View file

@ -0,0 +1,52 @@
:title: Attach stream API
:description: API Documentation for the Attach command in Docker
:keywords: API, Docker, Attach, Stream, REST, documentation
=================
Docker Attach stream API
=================
.. contents:: Table of Contents
1. Brief introduction
=====================
- This is the Attach stream API for Docker
2. Format
=========
The attach format is a Header and a Payload (frame).
2.1 Header
^^^^^^^^^^
The header will contain the information on which stream write
the stream (stdout or stderr).
It also contain the size of the associated frame encoded on the last 4 bytes (uint32).
It is encoded on the first 8 bytes like this:
header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}
STREAM_TYPE can be:
- 0: stdin (will be writen on stdout)
- 1: stdout
- 2: stderr
SIZE1, SIZE2, SIZE3, SIZE4 are the 4 bytes of the uint32 size.
2.1 Payload (frame)
^^^^^^^^^^^^^^^^^^^
The payload is the raw stream.
3. Implementation
=================
The simplest way to implement the Attach protocol is the following:
1) Read 8 bytes
2) chose stdout or stderr depending on the first byte
3) Extract the frame size from the last 4 byets
4) Read the extracted size and output it on the correct output
5) Goto 1)

View file

@ -27,14 +27,29 @@ Docker Remote API
2. Versions
===========
The current version of the API is 1.5
The current version of the API is 1.6
Calling /images/<name>/insert is the same as calling
/v1.5/images/<name>/insert
/v1.6/images/<name>/insert
You can still call an old version of the api using
/v1.0/images/<name>/insert
:doc:`docker_remote_api_v1.6`
*****************************
What's new
----------
.. http:post:: /containers/(id)/attach
**New!** You can now split stderr from stdout. This is done by prefixing
a header to each transmition. See :doc:`attach_api_1.6`.
The WebSocket attach is unchanged.
Note that attach calls on previous API version didn't change. Stdout and
stderr are merge.
:doc:`docker_remote_api_v1.5`
*****************************

File diff suppressed because it is too large Load diff