はじめに
Dockerfile のメンテナンスをしていて、あれ?このバージョンの.NET で利用可能なタグは何だっけか?を調べるためのメモです。
microsoft/dotnet から始まる.NET Core の古いリポジトリにある.NET Core 2.1 のイメージは利用できなくなっているので注意してください。.NET Core 2.1 のイメージは引き続きこの投稿にある mcr.microsoft.com から始まるリポジトリで提供されています。
.NET Core 2.1 container images will be deleted from Docker Hub
利用可能な.NET(Core)のコンテナリポジトリ
.NET の Docker イメージは DockerHub から確認できます。
コンテナイメージは Microsoft の Docker リポジトリにホストされているので下記のリポジトリから Pull できます。
.NET Core はもともと下記のリポジトリで公開されていましたが、.NET5 で.NET Framework と.NET Core が統合されたためコンテナリポジトリも変更されています。引き続き Pull できますが新しいコンテナイメージを作成する場合は使わない方が良いでしょう。
- mcr.microsoft.com/dotnet/core/sdk
- mcr.microsoft.com/dotnet/core/aspnet
- mcr.microsoft.com/dotnet/core/runtime
利用可能なタグ、OS の種類
.NET(Core)のバージョンごとに利用できる OS のベースイメージは結構違いがあって、それぞれ下記のようなタグで公開されています。
- https://mcr.microsoft.com/v2/dotnet/sdk/tags/list
- https://mcr.microsoft.com/v2/dotnet/aspnet/tags/list
- https://mcr.microsoft.com/v2/dotnet/runtime/tags/list
公式では Alpine は最新(.NET 5)以外はだいぶ絞られていますね。
mcr.microsoft.com/dotnet/sdkで公開されているイメージの一覧を表にしたものです。
Ubuntu
旧版 (.NET Core 2.1 ~ .NET 7)
| .NET Core 2.1 | .NET Core 3.1 | .NET 5 | .NET 6 | .NET 7 | |
|---|---|---|---|---|---|
|
EOL 2023/03/31 |
bionic bionic-arm32.v7 |
bionic bionic-arm32.v7 bionic-arm64.v8 |
|||
|
EOL 2025/03/31 |
focal focal-arm32.v7 |
focal focal-arm32.v7 focal-arm64.v8 |
focal focal-amd64 focal-arm32.v7 focal-arm64.v8 |
focal focal-amd64 focal-arm32.v7 focal-arm64.v8 |
|
| Ubuntu 22.04 LTS EOL 2027/03/31 |
jammy jammy-amd64 jammy-arm32.v7 jammy-arm64.v8 |
jammy jammy-amd64 jammy-arm32.v7 jammy-arm64.v8 |
|||
| Ubuntu 24.04 LTS EOL 2029/03/31 |
|||||
| $\hspace{60em}$ | |||||
| .NET 8 | .NET 9 | .NET 10 | |
|---|---|---|---|
| Ubuntu 22.04 LTS EOL 2027/03/31 |
jammy jammy-amd64 jammy-arm32.v7 jammy-arm64.v8 |
||
| Ubuntu 24.04 LTS EOL 2029/03/31 |
noble-amd64 noble-arm64v8 |
noble noble-amd64 noble-arm32.v7 noble-arm64.v8 |
noble noble-amd64 noble-arm32.v7 noble-arm64.v8 noble-aot noble-aot-amd64 noble-aot-arm64.v8 |
| $\hspace{36em}$ | |||
Alpine
旧版 (.NET Core 2.1 ~ .NET 7)
| .NET Core 2.1 | .NET Core 3.1 | .NET 5 | .NET 6 | .NET 7 | |
|---|---|---|---|---|---|
|
EOL 2021/11/01 |
alpine3.11 alpine3.11-amd64 |
||||
|
EOL 2022/03/31 |
alpine3.12 | alpine3.12 | alpine3.12 alpine3.12-amd64 |
||
|
EOL 2022/11/01 |
alpine3.13 | alpine3.13 | alpine3.13 alpine3.13-amd64 |
alpine3.13 alpine3.13-amd64 alpine3.13-arm32v7 alpine3.13-arm64v8 |
|
|
EOL 2023/03/01 |
alpine3.14 | alpine3.14 alpine3.14-amd64 |
alpine3.14 alpine3.14-amd64 alpine3.14-arm32v7 alpine3.14-arm64v8 |
||
|
EOL 2023/11/01 |
alpine3.15 | alpine3.15 alpine3.15-amd64 |
alpine3.15 alpine3.15-amd64 alpine3.15-arm32v7 alpine3.15-arm64v8 |
alpine3.15 alpine3.15-amd64 alpine3.15-arm32v7 alpine3.15-arm64v8 |
|
|
EOL 2024/03/01 |
alpine3.16 | alpine3.16 alpine3.16-amd64 alpine3.16-arm32v7 alpine3.16-arm64v8 |
alpine3.16 alpine3.16-amd64 alpine3.16-arm32v7 alpine3.16-arm64v8 |
||
|
EOL 2024/11/01 |
alpine3.17 alpine3.17-amd64 alpine3.17-arm32v7 alpine3.17-arm64v8 |
alpine3.17 alpine3.17-amd64 alpine3.17-arm32v7 alpine3.17-arm64v8 |
|||
|
EOL 2025/01/01 |
alpine3.18 alpine3.18-amd64 alpine3.18-arm32v7 alpine3.18-arm64v8 |
alpine3.18 alpine3.18-amd64 alpine3.18-arm32v7 alpine3.18-arm64v8 |
|||
|
EOL 2025/11/01 |
alpine3.19 alpine3.19-amd64 alpine3.19-arm32v7 alpine3.19-arm64v8 |
alpine3.19 alpine3.19-amd64 alpine3.19-arm32v7 alpine3.19-arm64v8 |
|||
|
EOL 2026/04/01 |
alpine3.20 alpine3.20-amd64 alpine3.20-arm32v7 alpine3.20-arm64v8 |
||||
| alpine3.21 EOL 2026/11/01 |
|||||
| alpine3.22 EOL 2027/03/01 |
|||||
| alpine3.23 EOL 2027/11/01 |
|||||
| $\hspace{60em}$ | |||||
| .NET 8 | .NET 9 | .NET 10 | |
|---|---|---|---|
|
EOL 2025/01/01 |
alpine3.18 alpine3.18-amd64 alpine3.18-arm32v7 alpine3.18-arm64v8 |
||
|
EOL 2025/11/01 |
alpine3.19 alpine3.19-amd64 alpine3.19-arm32v7 alpine3.19-arm64v8 |
||
|
EOL 2026/04/01 |
alpine3.20 alpine3.20-amd64 alpine3.20-arm32v7 alpine3.20-arm64v8 |
alpine3.20 alpine3.20-amd64 alpine3.20-arm32v7 alpine3.20-arm64v8 |
|
| alpine3.21 EOL 2026/11/01 |
alpine3.21 alpine3.21-amd64 alpine3.21-arm32v7 alpine3.21-arm64v8 |
alpine3.21 alpine3.21-amd64 alpine3.21-arm32v7 alpine3.21-arm64v8 |
|
| alpine3.22 EOL 2027/03/01 |
alpine3.22 alpine3.22-amd64 alpine3.22-arm32v7 alpine3.22-arm64v8 |
alpine3.22 alpine3.22-amd64 alpine3.22-arm32v7 alpine3.22-arm64v8 |
alpine3.22 alpine3.22-amd64 alpine3.22-arm32v7 alpine3.22-arm64v8 alpine3.22-aot alpine3.22-aot-amd64 alpine3.22-aot-arm64v8 |
| alpine3.23 EOL 2027/11/01 |
alpine3.23 alpine3.23-amd64 alpine3.23-arm32v7 alpine3.23-arm64v8 |
alpine3.23 alpine3.23-amd64 alpine3.23-arm32v7 alpine3.23-arm64v8 |
alpine3.23 alpine3.23-amd64 alpine3.23-arm32v7 alpine3.23-arm64v8 alpine3.23-aot alpine3.23-aot-amd64 alpine3.23-aot-arm64v8 |
| $\hspace{36em}$ | |||
Azure Linux
旧版 (.NET Core 2.1 ~ .NET 7)
| .NET Core 2.1 | .NET Core 3.1 | .NET 5 | .NET 6 | .NET 7 | |
|---|---|---|---|---|---|
| mariner1.0 | mariner1.0 mariner1.0-amd64 |
mariner1.0 mariner1.0-amd64 |
|||
|
EOL 2025/07/01 |
mariner2.0 mariner2.0-amd64 mariner2.0-arm64v8 |
mariner2.0 mariner2.0-amd64 mariner2.0-arm64v8 |
|||
| azurelinux3.0 | |||||
| $\hspace{60em}$ | |||||
| .NET 8 | .NET 9 | .NET 10 | |
|---|---|---|---|
|
EOL 2025/07/01 |
mariner2.0 mariner2.0-amd64 mariner2.0-arm64v8 |
||
| azurelinux3.0 | azurelinux3.0 azurelinux3.0-amd64 azurelinux3.0-arm64v8 |
azurelinux3.0 azurelinux3.0-amd64 azurelinux3.0-arm64v8 |
azurelinux3.0 azurelinux3.0-amd64 azurelinux3.0-arm64v8 azurelinux3.0-aot azurelinux3.0-aot-amd64 azurelinux3.0-aot-arm64v8 |
| $\hspace{36em}$ | |||
Debian
.NET 10 以降は未サポート
旧版 (.NET Core 2.1 ~ .NET 7)
| .NET Core 2.1 | .NET Core 3.1 | .NET 5 | .NET 6 | .NET 7 | |
|---|---|---|---|---|---|
|
EOL 2022/07/01 |
stretch stretch-arm32v7 |
||||
|
EOL 2026/06/30 |
buster buster-arm32.v7 buster-arm64.v8 |
buster-slim buster-slim-amd64 buster-slim-arm32.v7 buster-slim-arm64.v8 |
|||
| Debian 11 EOL 2026/08/31 |
bullseye bullseye-arm32.v7 bullseye-arm64.v8 |
bullseye-slim bullseye-slim-amd64 bullseye-slim-arm32.v7 bullseye-slim-arm64.v8 |
bullseye-slim bullseye-slim-amd64 bullseye-slim-arm32.v7 bullseye-slim-arm64.v8 |
bullseye-slim bullseye-slim-amd64 bullseye-slim-arm32.v7 bullseye-slim-arm64.v8 |
|
| Debian 12 EOL 2028/06/30 |
bookworm-slim bookworm-slim-amd64 bookworm-slim-arm32.v7 bookworm-slim-arm64.v8 |
bookworm-slim bookworm-slim-amd64 bookworm-slim-arm32.v7 bookworm-slim-arm64.v8 |
|||
| Debian 13 (Trixie) | |||||
| $\hspace{60em}$ | |||||
| .NET 8 | .NET 9 | .NET 10 | |
|---|---|---|---|
| Debian 12 EOL 2028/06/30 |
bookworm-slim bookworm-slim-amd64 bookworm-slim-arm32.v7 bookworm-slim-arm64.v8 |
bookworm-slim bookworm-slim-amd64 bookworm-slim-arm32.v7 bookworm-slim-arm64.v8 |
|
| Debian 13 (Trixie) | |||
| $\hspace{36em}$ | |||
また 5 以前であれば以前のリポジトリ(mcr.microsoft.com/dotnet/core/sdk)からも Pull できます。こちらは Alpine9 などの古いイメージも引き続き公開されているようです。
| OS Version | .NET Core 2.1 | .NET Core 3.1 |
|---|---|---|
| Debian 9(stretch) | 2.1-stretch | |
| Debian 10(buster) | 3.1-buster | |
| Alpine 3.9 | 2.1-alpine3.9 | |
| Alpine 3.10 | 2.1-alpine3.10 | 3.1-alpine3.10 |
| Alpine 3.11 | 2.1-alpine3.11 | 3.1-alpine3.11 |
| Alpine 3.12 | 2.1-alpine3.12 | 3.1-alpine3.12 |
| Ubuntu 18(bionic) | 2.1-bionic | 3.1-bionic |
| Ubuntu 20(focal) | 2.1-focal | 3.1-focal |