mirror of
https://github.com/docker/docs.git
synced 2026-10-23 18:09:02 +03:00
## Summary Prototypes a task-first Get started experience organized around three short journeys: - Containerization: run a container and application stack, build an image, and share it. - AI development: move an existing full-autonomy coding-agent workflow into a disposable Docker Sandbox. - Administration: invite a pilot user, apply a Docker Desktop policy, and verify the managed experience. The change replaces the existing Get started landing content with a compact journey selector, adds direct installation paths for Docker and Docker Sandboxes above the tutorials, adds the tutorials as a collapsible sidebar group, and updates homepage and `llms.txt` discovery paths. The container and sandbox tutorials include focused next steps into relevant concept and manual pages. The superseded Introduction series and its unused images are removed. Its published routes and legacy aliases, including the workshop routes consolidated on `main`, redirect to the replacement container tutorial or the Get Docker page. Inbound documentation links point to the new tutorial. The existing Docker concepts content remains available while this direction is evaluated. @netlify /get-started/ ## Deploy preview - [Get started landing page](https://deploy-preview-25986--docsdocker.netlify.app/get-started/) - [Containerization tutorial](https://deploy-preview-25986--docsdocker.netlify.app/get-started/tutorials/run-an-app/) - [AI agent tutorial](https://deploy-preview-25986--docsdocker.netlify.app/get-started/tutorials/run-an-agent/) - [Administrator tutorial](https://deploy-preview-25986--docsdocker.netlify.app/get-started/tutorials/admin-set-up/) Generated by Codex --------- Co-authored-by: Codex <noreply@openai.com>
97 lines
4.4 KiB
HTML
97 lines
4.4 KiB
HTML
<div
|
|
class="not-prose my-6 overflow-hidden rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900"
|
|
x-data="{ agent: 'codex', auth: 'codex-subscription' }"
|
|
>
|
|
<div
|
|
class="grid gap-4 border-b border-gray-200 bg-gray-50 p-4 sm:grid-cols-2 dark:border-gray-700 dark:bg-gray-800/50"
|
|
>
|
|
<label
|
|
class="grid gap-1.5 text-sm font-medium text-gray-700 dark:text-gray-200"
|
|
>
|
|
Agent
|
|
<select
|
|
class="w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-gray-900 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-900 dark:text-gray-100 dark:focus:border-blue-400"
|
|
x-model="agent"
|
|
@change="auth = { codex: 'codex-subscription', claude: 'claude-subscription', opencode: 'opencode-anthropic' }[$event.target.value]"
|
|
>
|
|
<option value="codex">Codex</option>
|
|
<option value="claude">Claude Code</option>
|
|
<option value="opencode">OpenCode</option>
|
|
</select>
|
|
</label>
|
|
|
|
<label
|
|
class="grid gap-1.5 text-sm font-medium text-gray-700 dark:text-gray-200"
|
|
>
|
|
Authentication
|
|
<select
|
|
class="w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-gray-900 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-900 dark:text-gray-100 dark:focus:border-blue-400"
|
|
x-model="auth"
|
|
x-show="agent === 'codex'"
|
|
>
|
|
<option value="codex-subscription">ChatGPT subscription</option>
|
|
<option value="codex-openai">OpenAI API key</option>
|
|
</select>
|
|
<select
|
|
class="w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-gray-900 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-900 dark:text-gray-100 dark:focus:border-blue-400"
|
|
x-model="auth"
|
|
x-cloak
|
|
x-show="agent === 'claude'"
|
|
>
|
|
<option value="claude-subscription">Claude subscription</option>
|
|
<option value="claude-anthropic">Anthropic API key</option>
|
|
</select>
|
|
<select
|
|
class="w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-gray-900 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-900 dark:text-gray-100 dark:focus:border-blue-400"
|
|
x-model="auth"
|
|
x-cloak
|
|
x-show="agent === 'opencode'"
|
|
>
|
|
<option value="opencode-anthropic">Anthropic API key</option>
|
|
<option value="opencode-openai">OpenAI API key</option>
|
|
<option value="opencode-openrouter">OpenRouter API key</option>
|
|
<option value="opencode-google">Google API key</option>
|
|
</select>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="p-4 sm:p-5" aria-live="polite">
|
|
<div x-show="auth === 'codex-subscription'">
|
|
<p class="m-0 text-gray-700 dark:text-gray-200">
|
|
No secret configuration is needed. When you run Codex, <code>sbx</code>
|
|
opens the OpenAI sign-in flow on your host before creating the sandbox.
|
|
</p>
|
|
</div>
|
|
<div x-cloak x-show="auth === 'claude-subscription'">
|
|
<p class="m-0 text-gray-700 dark:text-gray-200">
|
|
No secret configuration is needed. After Claude Code starts in the
|
|
sandbox, enter <code>/login</code> and sign in with your Claude account.
|
|
</p>
|
|
</div>
|
|
|
|
{{ range $choice := slice
|
|
(dict "id" "codex-openai" "service" "openai" "provider" "OpenAI")
|
|
(dict "id" "claude-anthropic" "service" "anthropic" "provider" "Anthropic")
|
|
(dict "id" "opencode-anthropic" "service" "anthropic" "provider" "Anthropic")
|
|
(dict "id" "opencode-openai" "service" "openai" "provider" "OpenAI")
|
|
(dict "id" "opencode-openrouter" "service" "openrouter" "provider" "OpenRouter")
|
|
(dict "id" "opencode-google" "service" "google" "provider" "Google")
|
|
}}
|
|
<div x-cloak x-show="auth === '{{ $choice.id }}'">
|
|
<p class="mt-0 mb-3 text-gray-700 dark:text-gray-200">
|
|
Store your {{ $choice.provider }} API key in the host credential
|
|
store. The command prompts for the key without displaying it:
|
|
</p>
|
|
<div
|
|
class="syntax-light dark:syntax-dark overflow-hidden rounded-md border border-gray-200 dark:border-gray-700"
|
|
>
|
|
{{ transform.Highlight
|
|
(printf "$ sbx secret set %s" $choice.service)
|
|
"console" ""
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{ end }}
|
|
</div>
|
|
</div>
|