## Description
Migrate 17 Testcontainers guides from testcontainers.com into the Docker
docs site, covering Java (14 guides), .NET (2 guides), and Node.js (1
guide). This follows up on PR #24450 which added the initial Go and
Python guides.
Each guide is converted from AsciiDoc to Hugo Markdown, split into
multi-chapter stepper navigation, updated to the latest Testcontainers
API, and verified with passing tests running in containers.
Java guides use testcontainers-java 2.0.4 with the new 2.x Maven
coordinates and package names (e.g., `testcontainers-postgresql`,
`org.testcontainers.postgresql.PostgreSQLContainer`). The Quarkus guide
uses Quarkus 3.22.3 with TC 1.x managed by the Quarkus BOM, since no
released Quarkus version ships TC 2.x yet.
## How to test
All code snippets have been verified by running each guide's source
repository tests inside Docker containers with the Docker socket
mounted.
To re-run the verification, use the `/testcontainers-guides-migrator`
skill included in this PR
(`.claude/skills/testcontainers-guides-migrator/SKILL.md`). The skill's
Step 6 documents the exact container commands and macOS Docker Desktop
workarounds (host override, docker-java API version, etc.) needed to run
each language's tests:
```
/testcontainers-guides-migrator I want you to verify all the guides in this branch.
Do a full review, verifying that all code snippets compile, the code is executable,
and ALL the tests pass. Run them as docker containers, never locally.
```
## Related issues or tickets
Supersedes #24450 (expanded from 2 guides to all 19)
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
## Description
- Update the Compose features page to use `reuse`/`Reusing` instead of
the hyphenated forms.
## Related issues or tickets
- N/A (trivial docs wording fix)
## Reviews
- [ ] Technical review
- [x] Editorial review
- [ ] Product review
## Guideline alignment
- Reviewed `CONTRIBUTING.md` and the PR template before editing.
- Kept the diff to one documentation file with no behavior changes.
## Validation
- Not run (docs-only wording change).
---------
Co-authored-by: rohan436 <rohan.santhoshkumar@googlemail.com>
> 🤖 Generated with [Claude Code](https://claude.com/claude-code)
## Summary
- Removes the hardcoded "Docker Personal comes with 1 Scout-enabled
repository" statement
- Replaces it with a direct link to the pricing page, which is the
source of truth for subscription limits
- Reduces maintenance burden by avoiding inline duplication of
subscription tier details
Closes#24491
Co-authored-by: Claude Docs Agent <agent@claude-docs-harness>
> 🤖 Generated with [Claude Code](https://claude.com/claude-code)
## Summary
- Removes the word "now" from the Scout Dashboard introductory paragraph
- "now" is time-relative language prohibited by STYLE.md and Vale rules
Closes#24489
Co-authored-by: Claude Docs Agent <agent@claude-docs-harness>
<!--Delete sections as needed -->
## Description
Follow up to #24500. I incorrectly interpreted and tested only the
distros and not the distro versions.
The UI wording is dynamic based on distro *and* version. I removed the
UI wording instead of updating as it makes the simple step more complex
than necessary by having to explain an insignificant UI quirk. Added the
explanation to the paragraph below the main step text.
Debian UI wording is **Packages**
Alpine 3.22 UI wording is **Packages**
Alpine 3.23 UI wording is **Hardened Packages**
## Related issues or tickets
ENGDOCS-3218
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Editorial review
Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
<!--Delete sections as needed -->
## Description
<!-- Tell us what you did and why -->
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
## Summary
- Updates the Azure Pipelines link in the "Third-party platforms"
section of `content/manuals/docker-hub/usage/pulls.md`
- Replaces the deprecated `docs.microsoft.com` domain with
`learn.microsoft.com` (Microsoft's current documentation domain)
- Removes the stale `#sep-docreg` anchor, which no longer exists on the
current page and causes users to land at the wrong location
Closes#24437🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Docker Docs Agent <agent@docker-docs-harness.local>
## Summary
- Removes `grep` from the prerequisite list in the "View pull rate and
limit" section of `content/manuals/docker-hub/usage/pulls.md`
- The three commands shown in that section only use `curl` and `jq` —
`grep` is never referenced
- Fixes a factual error that would cause unnecessary confusion for
readers checking whether they have the required tools
Closes#24436🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Docker Docs Agent <agent@docker-docs-harness.local>
## Summary
- Updates the CircleCI link in the "Third-party platforms" section of
`content/manuals/docker-hub/usage/pulls.md`
- Removes the `/2.0/` versioned path segment that CircleCI dropped when
they reorganized their documentation structure
- The old URL (`circleci.com/docs/2.0/private-images/`) returns 404; the
updated URL (`circleci.com/docs/private-images/`) follows CircleCI's
current unversioned path pattern
Closes#24438🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Docker Docs Agent <agent@docker-docs-harness.local>
## Summary
- Expands the Business subscriber note on the Gordon overview page
- Explains that Docker support must first activate Gordon for the org
(and will confirm when done), then an admin enables it in the Admin
Console
- Links to the settings reference for the admin step
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Docs Agent <agent@claude-docs-harness>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
## Summary
- Removes "Starting with Docker Desktop version 4.60 and later," from
the in-app updates note
- Removes "Available with Docker Desktop 4.33 and later" from the
`PROXYENABLEKERBEROSNTLM` property description
Closes#24470Closes#24471🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Docs Agent <agent@claude-docs-harness>
Remove "currently" from the Windows availability statement in the
Limitations section. The word is a temporal qualifier prohibited by the
style guide.
Fixes#24469🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Docs Agent <agent@claude-docs-harness>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace "the current version of Docker only supports container tasks"
with "Docker only supports container tasks" to avoid temporal framing
that goes stale silently.
Fixes#24463
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
<!--Delete sections as needed -->
## Description
Corrected task states terminology in the documentation.
<!-- Tell us what you did and why -->
## Related issues or tickets
Closes https://github.com/docker/docs/issues/24464
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
Adds documentation explaining how secrets appear inside build containers
when using GitHub Actions secret mounts.
Changes:
- Added new section "How secrets appear in the build container"
explaining:
- Default secret mount location (/run/secrets/<id>)
- File permissions and content handling
- How the env option works
- Custom target paths
- Includes practical examples for both environment variable and
file-based secret access
Fixes#24434
---------
Co-authored-by: David Karlsson <dvdksn@users.noreply.github.com>
<!--Delete sections as needed -->
## Description
<!-- Tell us what you did and why -->
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
## Description
Migrate the first two Testcontainers getting-started guides from
[testcontainers.com/guides](https://testcontainers.com/guides/) into the
Docker docs site:
- **Getting started with Testcontainers for Go** — multi-page guide with
4 chapters (create project, write tests, test suites, run tests). Code
updated to testcontainers-go v0.41.0 API (`postgres.Run()`,
`CleanupContainer`, `BasicWaitStrategies()`).
- **Getting started with Testcontainers for Python** — multi-page guide
with 3 chapters (create project, write tests, run tests). Code updated
to testcontainers-python 4.14.2 (fixed `get_exposed_port()` returning
`int`).
Each guide appears as its own entry in the `/guides/` listing with
proper language and tag filters (`testing-with-docker`). Chapters render
with stepper navigation in the sidebar.
Also adds:
- A `testing-with-docker` tag to `data/tags.yaml`
- A Claude skill
(`.claude/skills/testcontainers-guides-migrator/SKILL.md`) that
documents the repeatable migration process for the remaining 19 guides
- Links from `content/manuals/testcontainers.md` to the new guides
- Vale vocabulary entries for `pgx`, `Micronaut`, `psycopg`, `pytest`
All guide code was compiled and tests verified passing in containers
with Docker socket mounted.
## Related issues or tickets
No related issues found.
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
Documents that the presence of admin-settings.json file enforces sign-in
on Docker Desktop.
Changes:
- Added important note in Prerequisites section explaining that the
file's presence enforces sign-in (behavior since Docker Desktop 4.29)
- Clarifies this is intended for business features that require
authentication
This addresses user confusion about why Docker Desktop requires sign-in
after adding the admin-settings.json file.
Fixes#24286
---------
Co-authored-by: David Karlsson <dvdksn@users.noreply.github.com>
## Summary
- Removes the sentence "The Logs view is in active development." from
`content/manuals/desktop/use-desktop/logs.md`
- The phrase "in active development" is time-relative language
prohibited by the style guide
- The remaining sentence ("Select **Give feedback** at the top of the
view to share suggestions or report issues.") is self-contained and
complete without it
Closes#24451🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Docker Docs Agent <agent@docker-docs-harness.local>
Fixes discrepancies in the Docker Hub organization access token API
documentation to match actual API behavior.
Changes:
- Removed `created_by` field from create endpoint response (API only
returns `created_at`)
- Updated scope examples from `repo-pull` to `scope-image-pull` (correct
format with `scope-` prefix)
- Enhanced repository path documentation with validation requirements
for TYPE_REPO resources
These changes align the OpenAPI specification with the actual API
implementation as discovered during Terraform provider development.
Fixes#24406
---------
Co-authored-by: David Karlsson <dvdksn@users.noreply.github.com>
Add clarification in the 'Remove anonymous volumes' section that the
--rm option works with both foreground and detached (-d) containers.
Anonymous volumes are cleaned up when the container exits, regardless
of how it was started.
Fixes#19717
Assisted-By: docker-agent
Rename the second "Image and container layers on-disk" section heading to
"Image and container layers on-disk (legacy overlay driver)" to distinguish
it from the overlay2 section above it. Fixes#18191.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
<!--Delete sections as needed -->
## Description
<!-- Tell us what you did and why -->
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
Remove the "Docker Offload Beta" product-stage label from the trial
expiration note (the product is Early Access, not Beta). Simplify
the time-relative phrase "from the time they are granted".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
<!--Delete sections as needed -->
## Description
<!-- Tell us what you did and why -->
The release note of 4.65 mention `dhictl` which seems confusing to users
as the `dhictl` when bundled in DD is a cli-plugin available as `docker
dhi`.
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---------
Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
The previous text listed "SSO is enabled" as a condition for company
owners occupying seats without explaining why or how. Expand both the
FAQ and the company owners page to clarify that SSO causes seat
occupancy because signing in via SSO automatically adds the owner as
an organization member.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>