The Docker forum is using Discourse, which supports several ways to format your posts:
- Markdown; see commonmark.org/help for an interactive tutorial
- BBCode
- A small selection of HTML
- Any combination of the above
Blank lines for formatting and readability
Quite often you’ll need an empty line above specific formatting to make it work.
You also need to type blank lines to create proper paragraphs; just pressing Return once and then typing a new block of text right below a previous block only creates a so-called line break. That not only makes text harder to read, but also is bad practice for accessibilty.
Leaving one blank line between two blocks of texts, like done here, nicely creates a new paragraph with a minimum extra whitespace. That looks good on both mobile and in a regular desktop browser.
Paragraph vs line break
Not convinced about that blank line for a proper paragraph?
Below is the same text as above, but without blank lines between paragraphs. Make sure to resize your browser window to see how things may look on different screen sizes of regular browsers, and remember some may be using a screen reader instead.
Quite often you’ll need an empty line above specific formatting to make it work.
You also need to type blank lines to create proper paragraphs; just pressing Return once and then typing a new block of text right below a previous block only creates a so-called line break. That not only makes text harder to read, but also is bad practice for accessibilty.
Leaving one blank line between two blocks of texts, like done here, nicely creates a new paragraph with a minimum extra whitespace. That looks good on both mobile and in a regular desktop browser.
Toolbar
The toolbar above the editor’s text input helps create mostly Markdown posts:
-
To apply formatting to parts of your post, first select the text you want to format and then click one of the toolbar buttons.
-
See the button’s tooltip for some hints. From left to right: quote post you’re replying to, bold, emphasis (italic), hyperlink, blockquote, preformatted text, upload an image or file, bulleted list, numbered list, emoij, date/time, other options (such as hidden details).
Dockerfiles, Compose files, logs and code
Please don’t post text as images. Those are hard to read in screen readers and on smaller screen sizes, are not found when searching the forum, and make it hard to copy/quote parts into an answer.
When posting code as text, formatting is important:
-
Whitespace (especially indentation) often matters in code, and also in YAML files. But whitespace is lost when not formatting properly.
-
Erroneous interpretation of
<
and>
as<html elements>
may result in parts of the text getting hidden. -
Excessive interpretation of Markdown formatting (especially
#
for headers, and dashes for lists) may simply make your code impossible to read.
There are many easy options to format your code or logs:
-
Surround inline code in backticks; type
`code`
, or select some text and use the toolbar’s</>
button, to getcode
. -
“Markdown fenced code blocks”; type 3 backticks above and below your text, or select multiple lines of text and use the
</>
toolbar button:Here is my `Dockerfile`: ``` FROM node:12-alpine RUN apk add --no-cache python2 g++ make WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "src/index.js"] EXPOSE 3000 ``` And my `docker-compose.yaml` file: ``` version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "8000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {} ```
Above you may also notice that long code blocks get vertical scroll bars to avoid very tall posts.
output
Here is my
Dockerfile
:FROM node:12-alpine RUN apk add --no-cache python2 g++ make WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "src/index.js"] EXPOSE 3000
And my
docker-compose.yaml
file:version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "8000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}
If automatic highlighting is very wrong, try adding a language specification after the 3 opening backticks. Like
```yaml
for Compose files, and likewise```json
,```bash
,```python
and many more. (Not all code highlighting works properly on this Docker forum, like```dockerfile
should be supported, but somehow it’s not.)Or use
```text
to suppress any highlighting:```text ## some log output without highlighting <here> ```
-
Or, without automatic highlighting, indent the code with 4 spaces:
Here is my Compose file: services: web: build: . ports: - "8000:5000"
output
Here is my Compose file:
services: web: build: . ports: - "8000:5000"
-
Or: use BBCode
[code]
above your code or logs, and[/code]
below it.
Hiding details
If you have many details, you can collapse them to avoid a very long post, using the “Hide Details” option in the “gear” icon in the toolbar, or by typing:
<details>
<summary>Click to see the full logs</summary>
```text
This text will be hidden,
until clicked
```
</details>
[details=Click to see the full logs]
```text
This text will be hidden,
until clicked
```
[/details]
The first needs a blank line before any special formatting (like before the ```text
in the example). Both will will get you the following:
Click to see the full logs
This text will be hidden,
until clicked
Quotes and attribution
When quoting text from others, attribution is required. Also make clear it’s a quote, not your own text, by prefixing with >
or selecting the text and clicking the [”]
toolbar button:
I found this on https://stackoverflow.com/a/30173220/:
> The docker `exec` command is probably what you are looking for; this will let you run arbitrary commands inside an existing container. For example:
>
> docker exec -it <mycontainer> bash
output
I found this on How do I get into a Docker container's shell? - Stack Overflow
The docker
exec
command is probably what you are looking for; this will let you run arbitrary commands inside an existing container. For example:docker exec -it <mycontainer> bash
URLs
URLs are replaced with the description that Discourse gets from their HTML metadata, most often its <title>
. If that is not a good summary, then either explicitly define your own, or surround with <...>
to suppress the automatic link title:
- See https://docs.docker.com/desktop/
- See [the Desktop documentation](https://docs.docker.com/desktop/)
- See <https://docs.docker.com/desktop/>
output
If a line only holds a URL, then that may introduce a so-called “onebox” preview. That may work nice for, say, GitHub but may not add much for other sites:
https://docs.docker.com/desktop/
https://github.com/docker/compose/blob/cc5b72b11dc3a55609edda005e7ed493622cf568/README.md?plain=1#L54-L66
output
Image resizing
Images have a Discourse-specific Markdown option to scale down the preview size; add a percentage such as ,10%
after the image size that is already added when uploading an image:
![Docker logo|618x500, 10%](upload://pp7tVuTdjM1QZm4talenzRlJD0Z.png)
This gets you a smaller image that is clickable to see the full version.
Markdown
See Markdown Reference for a nice overview. It’s really easy; just a few of its options:
Just type, **use plenty of whitespace** and [link your sources](https:/docs.docker.com)!
- An unordered list.
- Item B.
Or:
1. An ordered list
1. Nested item
2. Nested item
2. Item 2.
- Nested unordered list
3. Item 3.
Nested paragraph.
> Nested quote.
```
Nested code
```
> A quote
>
> with nested code
HTML
Only a few tags are supported; other HTML may simply become invisible. So when code includes <
and >
then ensure to use inline code formatting like `<some-option>`
to see <some-option>
.
BBCode
[b]strong[/b]
[i]emphasis[/i]
[u]underlined[/u]
[s]strikethrough[/s]
[ul][li]option one[/li][/ul]
[quote="eviltrout"]They said...[/quote]
[quote="eviltrout, post:1, topic:2"]They said...[/quote]
[img]http://eviltrout.com/eviltrout.png[/img]
[url]http://bettercallsaul.com[/url]
[email]eviltrout@mailinator.com[/email]
[code]\nx++\n[/code]
Editing your posts
You can use the pencil icon below your post to edit it, if it’s not too old.
If you want to alert future readers about an error in your post, but do not want to remove it altogether as others already responded, then consider using ~~strikethrough~~
to strike some text that was wrong.
If you are editing quickly after the last time you saved your post, it will not be marked as edited. But after about 5 minutes, or if others meanwhile responded, or if the edit is significantly large, a pencil icon will appear at the top-right of your post to warn other readers about the edit. This will change color if a post was edited recently. Readers can click it to see the history.
If you accidentally included sensitive details (personal details, passwords) then use the flag icon below a post to notify a moderator, who can then hide the troublesome revision from being viewed.