mirror of https://github.com/docker/docs.git
Merge pull request #4385 from khia/json_format
Support json output in --format flag of docker inspect
This commit is contained in:
commit
37d0ce42c6
|
@ -37,6 +37,13 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var funcMap = template.FuncMap{
|
||||||
|
"json": func(v interface{}) string {
|
||||||
|
a, _ := json.Marshal(v)
|
||||||
|
return string(a)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrConnectionRefused = errors.New("Can't connect to docker daemon. Is 'docker -d' running on this host?")
|
ErrConnectionRefused = errors.New("Can't connect to docker daemon. Is 'docker -d' running on this host?")
|
||||||
)
|
)
|
||||||
|
@ -640,7 +647,7 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
|
||||||
var tmpl *template.Template
|
var tmpl *template.Template
|
||||||
if *tmplStr != "" {
|
if *tmplStr != "" {
|
||||||
var err error
|
var err error
|
||||||
if tmpl, err = template.New("").Parse(*tmplStr); err != nil {
|
if tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr); err != nil {
|
||||||
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
|
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
|
||||||
return &utils.StatusError{StatusCode: 64,
|
return &utils.StatusError{StatusCode: 64,
|
||||||
Status: "Template parsing error: " + err.Error()}
|
Status: "Template parsing error: " + err.Error()}
|
||||||
|
|
|
@ -809,6 +809,19 @@ we ask for the ``HostPort`` field to get the public address.
|
||||||
|
|
||||||
$ sudo docker inspect -format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
|
$ sudo docker inspect -format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
|
||||||
|
|
||||||
|
Get config
|
||||||
|
..........
|
||||||
|
|
||||||
|
The ``.Field`` syntax doesn't work when the field contains JSON data,
|
||||||
|
but the template language's custom ``json`` function does. The ``.config``
|
||||||
|
section contains complex json object, so to grab it as JSON, you use ``json``
|
||||||
|
to convert config object into JSON
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ sudo docker inspect -format='{{json .config}}' $INSTANCE_ID
|
||||||
|
|
||||||
|
|
||||||
.. _cli_kill:
|
.. _cli_kill:
|
||||||
|
|
||||||
``kill``
|
``kill``
|
||||||
|
|
Loading…
Reference in New Issue