Fixing double curly braces

This commit is contained in:
Misty Stanley-Jones 2016-12-19 16:26:19 -08:00
parent 132f33de6f
commit 46e044ec59
7 changed files with 63 additions and 37 deletions

View File

@ -22,41 +22,51 @@ list of elements they support in their templates:
Docker provides a set of basic functions to manipulate template elements. Docker provides a set of basic functions to manipulate template elements.
This is the complete list of the available functions with examples: This is the complete list of the available functions with examples:
### Join ### `join`
Join concatenates a list of strings to create a single string. `join` concatenates a list of strings to create a single string.
It puts a separator between each element in the list. It puts a separator between each element in the list.
{% raw %}
$ docker ps --format '{{join .Names " or "}}' $ docker ps --format '{{join .Names " or "}}'
{% endraw %}
### Json ### `json`
Json encodes an element as a json string. `json` encodes an element as a json string.
$ docker inspect --format '{{json .Mounts}}' container
### Lower
Lower turns a string into its lower case representation.
$ docker inspect --format "{{lower .Name}}" container
### Split
Split slices a string into a list of strings separated by a separator.
{% raw %} {% raw %}
# docker inspect --format '{{split (join .Names "/") "/"}}' container $ docker inspect --format '{{json .Mounts}}' container
{% endraw %} {% endraw %}
### Title ### `lower`
Title capitalizes a string. `lower` transforms a string into its lowercase representation.
{% raw %}
$ docker inspect --format "{{lower .Name}}" container
{% endraw %}
### `split`
`split` slices a string into a list of strings separated by a separator.
{% raw %}
$ docker inspect --format '{{split (join .Names "/") "/"}}' container
{% endraw %}
### `title`
`title` capitalizes the first character of a string.
{% raw %}
$ docker inspect --format "{{title .Name}}" container $ docker inspect --format "{{title .Name}}" container
{% endraw %}
### Upper ### `upper`
Upper turms a string into its upper case representation. `upper` transforms a string into its uppercase representation.
{% raw %}
$ docker inspect --format "{{upper .Name}}" container $ docker inspect --format "{{upper .Name}}" container
{% endraw %}

View File

@ -29,7 +29,7 @@ The `docker logs` command is not available for this logging driver.
Some options are supported by specifying `--log-opt` as many times as needed: Some options are supported by specifying `--log-opt` as many times as needed:
- `fluentd-address`: specify a socket address to connect to the Fluentd daemon, ex `fluentdhost:24224` or `unix:///path/to/fluentd.sock` - `fluentd-address`: specify a socket address to connect to the Fluentd daemon, ex `fluentdhost:24224` or `unix:///path/to/fluentd.sock`
- `tag`: specify tag for fluentd message, which interpret some markup, ex `{{.ID}}`, `{{.FullID}}` or `{{.Name}}` `docker.{{.ID}}` - `tag`: specify tag for fluentd message, which interpret some markup, ex {% raw %}`{{.ID}}`, `{{.FullID}}` or `{{.Name}}` `docker.{{.ID}}`{% endraw %}
Configure the default logging driver by passing the Configure the default logging driver by passing the

View File

@ -10,12 +10,13 @@ The `tag` log option specifies how to format a tag that identifies the
container's log messages. By default, the system uses the first 12 characters of container's log messages. By default, the system uses the first 12 characters of
the container id. To override this behavior, specify a `tag` option: the container id. To override this behavior, specify a `tag` option:
``` ```bash
docker run --log-driver=fluentd --log-opt fluentd-address=myhost.local:24224 --log-opt tag="mailer" $ docker run --log-driver=fluentd --log-opt fluentd-address=myhost.local:24224 --log-opt tag="mailer"
``` ```
Docker supports some special template markup you can use when specifying a tag's value: Docker supports some special template markup you can use when specifying a tag's value:
{% raw %}
| Markup | Description | | Markup | Description |
|--------------------|------------------------------------------------------| |--------------------|------------------------------------------------------|
| `{{.ID}}` | The first 12 characters of the container id. | | `{{.ID}}` | The first 12 characters of the container id. |
@ -26,13 +27,15 @@ Docker supports some special template markup you can use when specifying a tag's
| `{{.ImageName}}` | The name of the image used by the container. | | `{{.ImageName}}` | The name of the image used by the container. |
| `{{.DaemonName}}` | The name of the docker program (`docker`). | | `{{.DaemonName}}` | The name of the docker program (`docker`). |
For example, specifying a `--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"` value yields `syslog` log lines like: {% endraw %}
``` For example, specifying a {% raw %}`--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"`{% endraw %} value yields `syslog` log lines like:
```none
Aug 7 18:33:19 HOSTNAME docker/hello-world/foobar/5790672ab6a0[9103]: Hello from Docker. Aug 7 18:33:19 HOSTNAME docker/hello-world/foobar/5790672ab6a0[9103]: Hello from Docker.
``` ```
At startup time, the system sets the `container_name` field and `{{.Name}}` in At startup time, the system sets the `container_name` field and {% raw %}`{{.Name}}`{% endraw %} in
the tags. If you use `docker rename` to rename a container, the new name is not the tags. If you use `docker rename` to rename a container, the new name is not
reflected in the log messages. Instead, these messages continue to use the reflected in the log messages. Instead, these messages continue to use the
original container name. original container name.
@ -41,20 +44,21 @@ For advanced usage, the generated tag's use [go
templates](http://golang.org/pkg/text/template/) and the container's [logging templates](http://golang.org/pkg/text/template/) and the container's [logging
context](https://github.com/docker/docker/blob/master/daemon/logger/context.go). context](https://github.com/docker/docker/blob/master/daemon/logger/context.go).
As an example of what is possible with the syslog logger: As an example of what is possible with the syslog logger, if you use the following
command, you get the output that follows:
``` ```bash
{% raw %}
$ docker run -it --rm \ $ docker run -it --rm \
--log-driver syslog \ --log-driver syslog \
--log-opt tag="{{ (.ExtraAttributes nil).SOME_ENV_VAR }}" \ --log-opt tag="{{ (.ExtraAttributes nil).SOME_ENV_VAR }}" \
--log-opt env=SOME_ENV_VAR \ --log-opt env=SOME_ENV_VAR \
-e SOME_ENV_VAR=logtester.1234 \ -e SOME_ENV_VAR=logtester.1234 \
flyinprogrammer/logtester flyinprogrammer/logtester
{% endraw %}
``` ```
Results in logs like this: ```none
```
Apr 1 15:22:17 ip-10-27-39-73 docker/logtester.1234[45499]: + exec app Apr 1 15:22:17 ip-10-27-39-73 docker/logtester.1234[45499]: + exec app
Apr 1 15:22:17 ip-10-27-39-73 docker/logtester.1234[45499]: 2016-04-01 15:22:17.075416751 +0000 UTC stderr msg: 1 Apr 1 15:22:17 ip-10-27-39-73 docker/logtester.1234[45499]: 2016-04-01 15:22:17.075416751 +0000 UTC stderr msg: 1
``` ```

View File

@ -41,7 +41,7 @@ logging driver options:
| `splunk-verify-connection` | optional | Verify on start, that docker can connect to Splunk server. Defaults to true. | | `splunk-verify-connection` | optional | Verify on start, that docker can connect to Splunk server. Defaults to true. |
| `splunk-gzip` | optional | Enable/disable gzip compression to send events to Splunk Enterprise or Splunk Cloud instance. Defaults to false. | | `splunk-gzip` | optional | Enable/disable gzip compression to send events to Splunk Enterprise or Splunk Cloud instance. Defaults to false. |
| `splunk-gzip-level` | optional | Set compression level for gzip. Valid values are -1 (default), 0 (no compression), 1 (best speed) ... 9 (best compression). Defaults to [DefaultCompression](https://golang.org/pkg/compress/gzip/#DefaultCompression). | | `splunk-gzip-level` | optional | Set compression level for gzip. Valid values are -1 (default), 0 (no compression), 1 (best speed) ... 9 (best compression). Defaults to [DefaultCompression](https://golang.org/pkg/compress/gzip/#DefaultCompression). |
| `tag` | optional | Specify tag for message, which interpret some markup. Default value is `{{.ID}}` (12 characters of the container ID). Refer to the [log tag option documentation](log_tags.md) for customizing the log tag format. | | `tag` | optional | Specify tag for message, which interpret some markup. Default value is {% raw %}`{{.ID}}`{% endraw %} (12 characters of the container ID). Refer to the [log tag option documentation](log_tags.md) for customizing the log tag format. |
| `labels` | optional | Comma-separated list of keys of labels, which should be included in message, if these labels are specified for container. | | `labels` | optional | Comma-separated list of keys of labels, which should be included in message, if these labels are specified for container. |
| `env` | optional | Comma-separated list of keys of environment variables, which should be included in message, if these variables are specified for container. | | `env` | optional | Comma-separated list of keys of environment variables, which should be included in message, if these variables are specified for container. |
@ -75,7 +75,7 @@ $ docker run --log-driver=splunk \
By default Logging Driver sends messages as `inline` format, where each message By default Logging Driver sends messages as `inline` format, where each message
will be embedded as a string, for example will be embedded as a string, for example
``` ```none
{ {
"attrs": { "attrs": {
"env1": "val1", "env1": "val1",
@ -102,7 +102,7 @@ will try to parse every line as a JSON object and send it as embedded object. In
case if it cannot parse it - message will be send as `inline`. For example case if it cannot parse it - message will be send as `inline`. For example
``` ```none
{ {
"attrs": { "attrs": {
"env1": "val1", "env1": "val1",
@ -129,7 +129,7 @@ Third format is a `raw` message. You can specify it by using
`--log-opt splunk-format=raw`. Attributes (environment variables and labels) and `--log-opt splunk-format=raw`. Attributes (environment variables and labels) and
tag will be prefixed to the message. For example tag will be prefixed to the message. For example
``` ```none
MyImage/MyContainer env1=val1 label1=label1 my message MyImage/MyContainer env1=val1 label1=label1 my message
MyImage/MyContainer env1=val1 label1=label1 {"foo": "bar"} MyImage/MyContainer env1=val1 label1=label1 {"foo": "bar"}
``` ```

View File

@ -177,15 +177,19 @@ From the command line, run `docker node inspect <id-node>` to query the nodes.
For instance, to query the reachability of the node as a manager: For instance, to query the reachability of the node as a manager:
```bash ```bash
{% raw %}
docker node inspect manager1 --format "{{ .ManagerStatus.Reachability }}" docker node inspect manager1 --format "{{ .ManagerStatus.Reachability }}"
reachable reachable
{% endraw %}
``` ```
To query the status of the node as a worker that accept tasks: To query the status of the node as a worker that accept tasks:
```bash ```bash
{% raw %}
docker node inspect manager1 --format "{{ .Status.State }}" docker node inspect manager1 --format "{{ .Status.State }}"
ready ready
{% endraw %}
``` ```
From those commands, we can see that `manager1` is both at the status From those commands, we can see that `manager1` is both at the status

View File

@ -144,7 +144,9 @@ Launch a container running a PostgreSQL database and pass it the `--net=my-bridg
If you inspect your `my-bridge-network` you'll see it has a container attached. If you inspect your `my-bridge-network` you'll see it has a container attached.
You can also inspect your container to see where it is connected: You can also inspect your container to see where it is connected:
{% raw %}
$ docker inspect --format='{{json .NetworkSettings.Networks}}' db $ docker inspect --format='{{json .NetworkSettings.Networks}}' db
{% endraw %}
{"my-bridge-network":{"NetworkID":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99", {"my-bridge-network":{"NetworkID":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99",
"EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.18.0.1","IPAddress":"172.18.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}} "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.18.0.1","IPAddress":"172.18.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}
@ -155,14 +157,18 @@ Now, go ahead and start your by now familiar web application. This time don't sp
Which network is your `web` application running under? Inspect the application and you'll find it is running in the default `bridge` network. Which network is your `web` application running under? Inspect the application and you'll find it is running in the default `bridge` network.
{% raw %}
$ docker inspect --format='{{json .NetworkSettings.Networks}}' web $ docker inspect --format='{{json .NetworkSettings.Networks}}' web
{% endraw %}
{"bridge":{"NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812", {"bridge":{"NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812",
"EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}} "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}
Then, get the IP address of your `web` Then, get the IP address of your `web`
{% raw %}
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web $ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web
{% endraw %}
172.17.0.2 172.17.0.2

View File

@ -191,9 +191,11 @@ example as:
Next, inspect your linked containers with `docker inspect`: Next, inspect your linked containers with `docker inspect`:
{% raw %}
$ docker inspect -f "{{ .HostConfig.Links }}" web $ docker inspect -f "{{ .HostConfig.Links }}" web
[/db:/web/db] [/db:/web/db]
{% endraw %}
You can see that the `web` container is now linked to the `db` container You can see that the `web` container is now linked to the `db` container
`web/db`. Which allows it to access information about the `db` container. `web/db`. Which allows it to access information about the `db` container.