我開始學習如何使用 Docker,我有這個問題。當我制作“docker pull <image-name>”時,我通常從 docker hub 拉取影像。
但是影像可以有不同的版本,在作業系統和架構上有所不同。例如,python 影像具有 linux 和 windows 版本。

我想知道如果我只做一個“docker pull python”我會得到什么影像,以及我如何自己選擇作業系統和架構。
實際上,我更喜歡使用 linux 映像,因為它很輕量級,而且我不想意外拉取 Windows 映像。
uj5u.com熱心網友回復:
我想知道如果我只做一個“docker pull python”我會得到什么影像
來自“利用多 CPU 架構支持”
Docker Hub 上的大部分 Docker 官方鏡像都提供了多種架構。
例如,busybox影像支持amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、 和s390x。
在x86_64/amd64機器上運行此映像時,將amd64拉取并運行該變體。
因此,這取決于您執行docker pull.
以及我如何自己選擇作業系統和架構。
同一頁面添加:
您還可以在 Docker Desktop 上運行針對不同架構的映像。
您可以使用 SHA 標記運行映像,并驗證架構。
例如,當您在 macOS 上運行以下命令時:docker run --rm docker.io/username/demo:latest@sha256:2b77acdfea5dc5baa489ffab2a0b4a387666d1d526490e31845eb64e3e73ed20 uname -maarch64
docker run --rm docker.io/username/demo:latest@sha256:723c22f366ae44e419d12706453a544ae92711ae52f510e226f6467d8228d191 uname -marmv71
在上面的示例中,uname -m 按預期回傳 aarch64 和 armv7l,即使在本機 macOS 或 Windows 開發人員機器上運行命令時也是如此
uj5u.com熱心網友回復:
它基于運行 docker 的主機平臺。你可以看到這個docker info:
$ docker info --format '{{ .OSType }}/{{ .Architecture }}'
linux/x86_64
用于此的代碼在containerd 中,而 OS 和 Arch 在 go 中的查找方式略有不同:
$ go env
GO111MODULE=""
GOARCH="amd64"
...
GOOS="linux"
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/412681.html
標籤:
上一篇:使用`--env`時,我的docker映像沒有看到enviornemnt變數,但使用docker-compose可以看到
