{{< /tab >}}
{{< tab name="Specific version" >}}
To install a specific version of Docker Engine, start by listing the
available versions in the repository:
```console
# List the available versions:
$ apt-cache madison docker-ce | awk '{ print $3 }'
5:{{% param "docker_ce_version" %}}-1~raspbian.12~bookworm
5:{{% param "docker_ce_version_prev" %}}-1~raspbian.12~bookworm
...
```
Select the desired version and install:
```console
$ VERSION_STRING=5:{{% param "docker_ce_version" %}}-1~raspbian.12~bookworm
$ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
```
{{< /tab >}}
{{< /tabs >}}
3. Verify that the installation is successful by running the `hello-world` image:
```console
$ sudo docker run hello-world
```
This command downloads a test image and runs it in a container. When the
container runs, it prints a confirmation message and exits.
You have now successfully installed and started Docker Engine.
{{% include "root-errors.md" %}}
#### Upgrade Docker Engine
To upgrade Docker Engine, follow step 2 of the
[installation instructions](#install-using-the-repository),
choosing the new version you want to install.
### Install from a package
If you can't use Docker's `apt` repository to install Docker Engine, you can
download the `deb` file for your release and install it manually. You need to
download a new file each time you want to upgrade Docker Engine.
<!-- markdownlint-disable-next-line -->
1. Go to [`{{% param "download-url-base" %}}/dists/`]({{% param "download-url-base" %}}/dists/).
2. Select your Raspberry Pi OS version in the list.
3. Go to `pool/stable/` and select the applicable architecture (`amd64`,
`armhf`, `arm64`, or `s390x`).
4. Download the following `deb` files for the Docker Engine, CLI, containerd,
and Docker Compose packages:
- `containerd.io_<version>_<arch>.deb`
- `docker-ce_<version>_<arch>.deb`