command: docker image rm
aliases: docker image rm, docker image remove, docker rmi
short: Remove one or more images
long: |-
    Removes (and un-tags) one or more images from the host node. If an image has
    multiple tags, using this command with the tag as a parameter only removes the
    tag. If the tag is the only one for the image, both the image and the tag are
    removed.

    This does not remove images from a registry. You cannot remove an image of a
    running container unless you use the `-f` option. To see all images on a host
    use the [`docker image ls`](/reference/cli/docker/image/ls/) command.
usage: docker image rm [OPTIONS] IMAGE [IMAGE...]
pname: docker image
plink: docker_image.yaml
options:
    - option: force
      shorthand: f
      value_type: bool
      default_value: "false"
      description: Force removal of the image
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: no-prune
      value_type: bool
      default_value: "false"
      description: Do not delete untagged parents
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: platform
      value_type: stringSlice
      default_value: '[]'
      description: |
        Remove only the given platform variant. Formatted as `os[/arch[/variant]]` (e.g., `linux/amd64`)
      details_url: '#platform'
      deprecated: false
      hidden: false
      min_api_version: "1.50"
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
inherited_options:
    - option: help
      value_type: bool
      default_value: "false"
      description: Print usage
      deprecated: false
      hidden: true
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
examples: |-
    You can remove an image using its short or long ID, its tag, or its digest. If
    an image has one or more tags referencing it, you must remove all of them before
    the image is removed. Digest references are removed automatically when an image
    is removed by tag.

    ```console
    $ docker images

    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)

    $ docker rmi fd484f19954f

    Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
    2013/12/11 05:47:16 Error: failed to remove one or more images

    $ docker rmi test1:latest

    Untagged: test1:latest

    $ docker rmi test2:latest

    Untagged: test2:latest


    $ docker images

    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)

    $ docker rmi test:latest

    Untagged: test:latest
    Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
    ```

    If you use the `-f` flag and specify the image's short or long ID, then this
    command untags and removes all images that match the specified ID.

    ```console
    $ docker images

    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)

    $ docker rmi -f fd484f19954f

    Untagged: test1:latest
    Untagged: test:latest
    Untagged: test2:latest
    Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
    ```

    An image pulled by digest has no tag associated with it:

    ```console
    $ docker images --digests

    REPOSITORY                     TAG       DIGEST                                                                    IMAGE ID        CREATED         SIZE
    localhost:5000/test/busybox    <none>    sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536    9 weeks ago     2.43 MB
    ```

    To remove an image using its digest:

    ```console
    $ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
    Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
    Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
    Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
    Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
    ```

    ### Remove specific platforms (`--platform`) {#platform}

    The `--platform` option allows you to specify which platform variants of the
    image to remove. By default, `docker image remove` removes all platform variants
    that are present. Use the `--platform` option to specify which platform variant
    of the image to remove.

    Removing a specific platform removes the image from all images that reference
    the same content, and requires the `--force` option to be used. Omitting the
    `--force` option produces a warning, and the remove is canceled:

    ```console
    $ docker image rm --platform=linux/amd64 alpine
    Error response from daemon: Content will be removed from all images referencing this variant. Use —-force to force delete.
    ```

    The platform option takes the `os[/arch[/variant]]` format; for example,
    `linux/amd64` or `linux/arm64/v8`. Architecture and variant are optional,
    and default to the daemon's native architecture if omitted.

    You can pass multiple platforms either by passing the `--platform` flag
    multiple times, or by passing a comma-separated list of platforms to remove.
    The following uses of this option are equivalent;

    ```console
    $ docker image rm --platform linux/amd64 --platform linux/ppc64le myimage
    $ docker image rm --platform linux/amd64,linux/ppc64le myimage
    ```

    The following example removes the `linux/amd64` and `linux/ppc64le` variants
    of an `alpine` image that contains multiple platform variants in the image
    cache:

    ```console
    $ docker image ls --tree

    IMAGE                   ID             DISK USAGE   CONTENT SIZE   EXTRA
    alpine:latest           a8560b36e8b8       37.8MB         11.2MB    U
    ├─ linux/amd64          1c4eef651f65       12.1MB         3.64MB    U
    ├─ linux/arm/v6         903bfe2ae994           0B             0B
    ├─ linux/arm/v7         9c2d245b3c01           0B             0B
    ├─ linux/arm64/v8       757d680068d7       12.8MB         3.99MB
    ├─ linux/386            2436f2b3b7d2           0B             0B
    ├─ linux/ppc64le        9ed53fd3b831       12.8MB         3.58MB
    ├─ linux/riscv64        1de5eb4a9a67           0B             0B
    └─ linux/s390x          fe0dcdd1f783           0B             0B

    $ docker image --platform=linux/amd64,linux/ppc64le --force alpine
    Deleted: sha256:1c4eef651f65e2f7daee7ee785882ac164b02b78fb74503052a26dc061c90474
    Deleted: sha256:9ed53fd3b83120f78b33685d930ce9bf5aa481f6e2d165c42cbbddbeaa196f6f
    ```

    After the command completes, the given variants of the `alpine` image are removed
    from the image cache:

    ```console
    $ docker image ls --tree

    IMAGE                   ID             DISK USAGE   CONTENT SIZE   EXTRA
    alpine:latest           a8560b36e8b8       12.8MB         3.99MB
    ├─ linux/amd64          1c4eef651f65           0B             0B
    ├─ linux/arm/v6         903bfe2ae994           0B             0B
    ├─ linux/arm/v7         9c2d245b3c01           0B             0B
    ├─ linux/arm64/v8       757d680068d7       12.8MB         3.99MB
    ├─ linux/386            2436f2b3b7d2           0B             0B
    ├─ linux/ppc64le        9ed53fd3b831           0B             0B
    ├─ linux/riscv64        1de5eb4a9a67           0B             0B
    └─ linux/s390x          fe0dcdd1f783           0B             0B
    ```
deprecated: false
hidden: false
experimental: false
experimentalcli: false
kubernetes: false
swarm: false

