Home / Alt manpages / docker-container-rename(1)

  • docker-container-rename(1)
  • User command
  • linux

Rename a Docker Container Without Losing Track of It

docker container rename swaps a container's name in seconds, and every script or dashboard still pointing at the old one starts failing right after. Renaming takes about ten minutes done carefully: check the command, confirm both names, rename, then verify the ID stayed the same.

You need access to the Docker daemon and the name or ID of the container. The rename command itself does not need sudo, but your account must be allowed to use the daemon socket; if that normally means sudo docker on your host, use it for every command below.

1. Check the command before changing anything

Read the local help first. It is an ordinary, read-only check:

$ docker container rename --help
Usage:  docker container rename CONTAINER NEW_NAME

Rename a container

The command takes exactly two positional values: the existing container reference, then the replacement name. A container reference can be a name or an ID. docker rename is the shorter alias, but the full docker container rename form reads better in scripts and runbooks.

Checkpoint

Identify the intended container before doing anything else:

$ OLD_NAME='web-preview'
$ NEW_NAME='web-preview-old'
$ docker container inspect --format '{{.Name}}' "$OLD_NAME"
/web-preview

If inspection fails with a no-such-container error, stop and correct the reference rather than guessing from a truncated listing. To see stopped containers as well as running ones:

$ docker container ls --all
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES

The rows on your host will differ. The NAMES column is the value you use as OLD_NAME.

2. Check that the replacement name is free

Docker names are identifiers, so the destination must not already belong to another container:

$ docker container inspect --format '{{.Name}}' "$NEW_NAME"
Error response from daemon: No such container: web-preview-old
  • A non-zero result here is expected. It means the destination name is unused; the exact wording varies by daemon version, but "not found" is the fact you want.
  • If it finds a container instead, pick a different name. Do not remove the other container just to make room.

3. Rename the container

Renaming changes the Docker name only: the filesystem, image, ID and configured command stay exactly as they were. The container can be running, paused or stopped, but scripts, monitoring, Compose references or operator commands that use the old name can break the moment it changes.

Warning

Make a note of the old name before renaming anything on a production host. The action is reversible, but dependent automation may fail until it is updated.

$ docker container rename "$OLD_NAME" "$NEW_NAME"
$ echo "rename exit status: $?"
rename exit status: 0

Successful Docker CLI output is normally empty; the zero exit status is the result that matters. A running container keeps running, this command does not restart it or touch its processes.

Checkpoint

If the destination name is already in use, nothing gets renamed: re-check both names and pick an unused destination. If the daemon says the source does not exist, list everything again with docker container ls --all, since a stopped container is hidden by the default listing.

4. Verify the new name and the original identity

Ask Docker to resolve the new name and print the container ID:

$ docker container inspect --format 'name={{.Name}} id={{.Id}} status={{.State.Status}}' "$NEW_NAME"
name=/web-preview-old id=CONTAINER_ID status=running

Replace CONTAINER_ID with the value your daemon printed. The status may instead be paused, created, exited or another valid state. What matters is that the name carries the leading slash Docker always adds, and that the ID matches what you recorded before the change.

Confirm the old reference no longer resolves:

$ docker container inspect "$OLD_NAME"
Error response from daemon: No such container: web-preview

That failure is expected after a successful rename. Logs, volumes, networks and processes stay attached to the container; only references that use the old name need updating.

5. Undo the rename if a dependent command needs the old name

Renaming back uses the same command in reverse. This does not restore a deleted container, because nothing was ever deleted:

$ docker container rename "$NEW_NAME" "$OLD_NAME"
$ docker container inspect --format '{{.Name}}' "$OLD_NAME"
/web-preview

If another container has since claimed the old name, do not force the change. Identify the conflict, pick a temporary free name if your maintenance plan allows it, and update the affected automation deliberately. A rename is not a safe way to resolve an unknown naming conflict mid-outage.

6. Update callers after a deliberate rename

  • Search deployment files, shell scripts and monitoring checks for the old name. A command such as docker logs web-preview or docker exec web-preview ... fails after the rename even though the container is healthy.
  • Use the new name, or the stable container ID, where a name is not required.
  • If a Compose or orchestration file owns the name, change that source configuration and redeploy through its normal process rather than relying on a manual rename.
  • Do not treat a successful rename as proof of recovery. Verify the caller that motivated the change, and check the service's own health separately: the rename command reports the naming operation, not the application state.

Done means

  • The installed CLI accepted docker container rename CONTAINER NEW_NAME.
  • You checked the source container and confirmed the destination name was unused.
  • The rename returned status 0 without an unnecessary restart or removal.
  • The new name resolves to the same container ID and expected state.
  • Callers that used the old name have been updated, or you reverted the rename.