我正在Windows上运行Docker桌面。我有以下设置:
运行wsl命令确认Ubuntu为默认发行版
这是否意味着当我启动一个容器时,它将在Ubuntu上运行?
当我旋转一个容器时,我看到它运行Debian。
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
#
为什么Debian比Ubuntu更受欢迎?
- 更新**:
因此,运行Linux版本的容器在Dockerfile中指定。在Dockerfile中,基本映像被设置为FROM mcr.microsoft.com/dotnet/sdk:6.0
。我猜在该映像中,Microsoft指定了Linux的风格。虽然there are images for all OS versions,但我不确定它如何选择Debian。
1条答案
按热度按时间q3aa05251#
Docker桌面资源设置中的“Ubuntu”选项意味着您 * 可以 * 在该发行版 * 内 * 运行
docker
和相关命令。如果您取消选择Ubuntu发行版,您仍然可以从PowerShell和CMD运行docker
,但在Ubuntu内无法运行。如果您有多个WSL发行版,指定您希望为Docker Desktop激活的发行版是很有用的,因为只要Docker Desktop在运行,* 所有 * 选定的发行版都会 * 持续 * 运行。
正如注解中提到的,container 的分布(如果有)由容器的
Dockerfile
(可能是上游)决定,但是,请记住,容器甚至不需要分布,它可以像单个静态链接的二进制文件一样简单。对于您给出的示例,如果提取“default”(
:latest
),则您将在the container's page上的“Full Tag Listing”中看到标记latest
是其他一些靶心标记的同义词:在某个时候,
latest
将被重新分配到一个更新的(a).NET SDK,和(b)Debian发行版(虽然不太频繁,显然)。