Self-hosted applications sometimes need a planned pause for maintenance. The AnythingLLM Docker service can be stopped, started, or restarted without replacing its container.
Docker keeps a stopped container's writable layer and attached storage. Starting or restarting that same container reuses its existing image and settings; it does not pull a new image or perform an upgrade.
The Docker CLI must be connected to the engine that hosts your existing AnythingLLM container, with permission to manage it. The official image includes a health check, which distinguishes application readiness from a process that has merely started.
Steps to manage the AnythingLLM Docker service:
- Set
CONTAINERto the name of your existing AnythingLLM container.$ CONTAINER="anythingllm"
The value anythingllm stands for your container's name. The remaining commands use this variable in the same shell. This method applies to a standalone Docker container; a Compose-managed deployment belongs to its Compose project. An existing installation is required.
Related: AnythingLLM Docker installation - Confirm the image and current state of the selected AnythingLLM container.
$ docker container inspect \ --format '{{.Config.Image}} {{.State.Status}}' \ "$CONTAINER" mintplexlabs/anythingllm:1.19.0 runningThe image reference identifies the deployment, and its tag can differ. No such container means the name is wrong, the container was removed, or the shell is connected to another Docker engine.
- Stop the selected AnythingLLM container for maintenance.
Stopping or restarting AnythingLLM interrupts chat requests and document processing for everyone using this instance. Do not stop or restart until active work has finished. The 30-second timeout gives the process time to exit; Docker forcibly kills it if that time expires.
$ docker stop --timeout 30 "$CONTAINER" anythingllm
The returned name confirms that Docker processed the stop request. The container and its storage remain available for the next start.
- Verify that the AnythingLLM container has stopped.
$ docker container inspect --format '{{.State.Status}}' "$CONTAINER" exitedexited confirms that the container's main process is no longer running. If the service is meant to stay offline, this is the stopping point.
- Start the existing AnythingLLM container when service should resume.
$ docker start "$CONTAINER" anythingllm
- Check that the AnythingLLM container is running after the start.
$ docker container inspect --format '{{.State.Status}}' "$CONTAINER" runningrunning describes the container process. The application can still be initializing at this point.
- Restart the selected AnythingLLM container when a full stop-and-start is needed.
$ docker restart --timeout 30 "$CONTAINER" anythingllm
A restart performs both operations on the same container and causes another service interruption. It does not apply changed Docker creation options such as port mappings or mounts.
- Confirm that AnythingLLM is running with a healthy application check after startup.
Container and health status:
$ docker container inspect \ --format '{{.State.Status}} {{.State.Health.Status}}' \ "$CONTAINER" running healthyhealthy means the image's web-server ping check has passed; it does not test your model provider or a chat response. If the health state is starting, allow startup and the next health-check interval to finish before repeating the check. If it remains unhealthy or the container exits, inspect the application logs before treating the service as available. A custom image without a health check cannot supply this health field.
Related: AnythingLLM Docker debugging