Atmos Container Components
SkillCloud & infraYour AI can build, run, and manage Docker-based containers inside your Atmos cloud stacks. Once added, it handles container components, migrates Docker Compose setups, and runs containers that stay persistent within each stack. Container work can also become steps in your existing Atmos workflows.
Available today. Use it from your connected AI after setup.
No other account needed.
Add the skill, then ask your AI to build and run a container component in one of your Atmos stacks. If you already use Docker Compose, it can migrate those setups next.
Then ask your AI: use the Atmos Container Components skill
What your AI can do with it
- Build, run, push, and pull containers
- Start and stop containers and see which ones are running
- Read container logs and run commands inside a container
- Migrate Docker Compose setups to Atmos container components
- Keep containers persistent within a specific stack
- Add container steps to Atmos workflows, compositions, and hooks
What this skill tells your AI
The instructions your AI receives, as published by cloudposse/atmos in agent-skills/skills/atmos-container/SKILL.md and read by ahel’s review.
Use this skill for first-class Atmos containers. A container component is a stack-scoped service: one component maps to one container, with image build/push/pull and optional persistent runtime.
Related Skills
| Need | Load |
|---|---|
| Grouping services into systems | atmos-compositions |
Workflow container steps | atmos-workflows |
| Lifecycle hooks around components | atmos-hooks |
| Local cloud/API emulators | atmos-emulator |
| Secret and env migration | atmos-secrets |
Component Shape
Define containers under components.container in stack manifests.
components:
container:
api:
image: ghcr.io/acme/api:latest
build:
context: services/api
dockerfile: Dockerfile
tags:
- ghcr.io/acme/api:latest
run:
ports:
- host: 8080
container: 8080
command: ./api
env:
LOG_LEVEL: info
composition: app
Container components can participate in hooks, compositions, workflows, and stack-specific config the same way other Atmos component types do.
Relative build.context, build.dockerfile, and run.mounts[].source resolve against the
component's own directory — components.container.base_path (default components/container) joined
with component:/metadata.component, the same mechanism Terraform/Helmfile/Kubernetes/Helm use —
not the directory atmos is invoked from. A component declaring source: is auto-provisioned into a
workdir (same JIT support as other component types), and that workdir becomes the anchor instead.
Commands
| Command | Purpose |
|---|---|
atmos container build <name> -s <stack> | Build the component image |
atmos container push <name> -s <stack> | Push the image to its registry |
atmos container pull <name> -s <stack> | Pull the image |
atmos container run <name> -s <stack> | Run one foreground container |
atmos container up <name> -s <stack> | Create/start the persistent container |
atmos container down <name> -s <stack> | Stop and remove the persistent container |
atmos container ps -s <stack> | Show running state |
atmos container list -s <stack> | List container components and state |
atmos container logs <name> -s <stack> | Show logs |
atmos container exec <name> -s <stack> -- <cmd> | Execute inside the container |
atmos container also supports attach, restart, start, stop, and rm. Use --dry-run to
preview operations.
Workflow Steps
Use the workflow container step type when a workflow should build, run, push, or operate a
container as part of orchestration. Use components.container when the container is a reusable
stack-scoped component with persistent lifecycle.
Migrating from Docker Compose
When replacing docker compose with Atmos containers, translate one Compose service at a time
into components.container.<service>. Keep multi-service grouping with composition, not by
collapsing several services into one container component.
| Docker Compose field | Atmos container mapping |
|---|---|
services.<name>.image | components.container.<name>.image |
build.context, build.dockerfile | build.context, build.dockerfile |
ports | run.ports |
environment, env_file | env, stack vars, or secrets.vars with !secret |
command, entrypoint | run.command or the supported runtime command fields |
volumes | runtime mount settings supported by the container component |
depends_on | workflow/composition ordering, readiness checks, wait, or wait-all |
| Compose project name | shared composition: <name> across related container components |
Migration process:
- Inventory Compose services and split long-lived services into separate container components.
- Move shared
.envvalues into stack vars, component env, declared secrets, or!secretreferences. - Use
composition: <name>so former Compose services validate and run as one system. - Replace
docker compose up/down/logs/exec/pswith the matchingatmos containercommands. - Use workflow
container,wait,wait-all, and explicit dependencies for startup order instead of Compose-onlydepends_onassumptions. - Prefer first-class
components.containerfor Atmos-managed services. Keep a native Compose file only when the project must remain compatible with external Compose tooling.
Operational Guidance
- Use stack names to isolate container instances.
- Prefer declared
image,build,run, andenvblocks over ad hoc shelldockercommands. - Use
compositionwhen a container fulfills a named service in a system. - Use hooks for pre/post actions such as scans, artifact publication, or store writes.
- Use registry auth skills such as
atmos-aws-ecrwhen pushing to private registries.
Signals
- GitHub stars
- 1k
- Forks
- 175
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
atmos-container- Source
- github.com/cloudposse/atmos