M1 docker preview and keycloak 'image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8)' 问题
M1 docker preview and keycloak 'image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8)' Issue
我刚刚下载了 Docker Preview v3.1 https://docs.docker.com/docker-for-mac/apple-m1/ 并尝试了 运行 keycloak。
还有其他人 运行 关注这个问题吗?
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.4
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
刚找到这个 post:
https://github.com/docker/for-mac/issues/5310#issuecomment-779791882
使用此映像,我现在可以启动 keycloak。
https://hub.docker.com/r/wizzn/keycloak
你可以尝试添加这个
--platform linux/amd64
来自
将此片段添加到您的 ~/.zshrc
和 ~/.bashrc
。它允许您在执行 docker run
命令时不重复标记:
# useful only for Mac OS Silicon M1,
# still working but useless for the other platforms
docker() {
if [[ `uname -m` == "arm64" ]] && [[ "" == "run" || "" == "build" ]]; then
/usr/local/bin/docker "" --platform linux/amd64 "${@:2}"
else
/usr/local/bin/docker "$@"
fi
}
对我来说,错误发生是因为我在 M1 芯片 Macbook 上构建 docker 图像,并试图在 Linux 机器上 运行 图像。
这对我有用:
使用需要 运行 它的同一台机器构建 docker 图像,并且成功了。
在 M1 运行 上 image。适合我。
docker run -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin wizzn/keycloak:14
与@li Etzyio 回复的内容类似,错误告诉您您用于在本地构建图像的平台与用于图像的平台不同。 M1 计算机(可能还有其他计算机)会发生这种情况,因此,您需要做的是将 --platform <PLATFORM_SPEC>
指定为 docker build
命令,并将 <PLATFORM_SPEC>
替换为错误所在告诉你(在这种情况下 linux/amr64/v8
)。
设置这些环境变量也对我有用:
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
export DOCKER_DEFAULT_PLATFORM=linux/amd64
如果你不想传递标志 --platform
every-time 你 运行 构建命令。
我遇到这个问题是因为在我的 Dockerfile 中我使用了不支持 arm64 的 FROM java:8
。
我通过 运行 以下命令修复它:
docker pull openjdk
然后将我的 Dockerfile 更改为
FROM openjdk:latest
如果您 运行 Docker M1 mac 上的工作站,您可以利用 Docker Workstation multi-CPU architecture support, which includes the buildx command。它允许您为不同的 CPU 创建映像。
要在您的 M1 mac 工作站上构建 Linux/AMD/Intel 映像,运行 以下内容。
docker buildx build --platform=linux/amd64 -t myorg/mytag:1.0.0 .
将 docker buildx
放在前面会启动带有 BuildKit 的命令。有关详细信息,请参阅上面的链接。
我刚刚下载了 Docker Preview v3.1 https://docs.docker.com/docker-for-mac/apple-m1/ 并尝试了 运行 keycloak。
还有其他人 运行 关注这个问题吗?
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.4
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
刚找到这个 post: https://github.com/docker/for-mac/issues/5310#issuecomment-779791882
使用此映像,我现在可以启动 keycloak。 https://hub.docker.com/r/wizzn/keycloak
你可以尝试添加这个
--platform linux/amd64
来自
将此片段添加到您的 ~/.zshrc
和 ~/.bashrc
。它允许您在执行 docker run
命令时不重复标记:
# useful only for Mac OS Silicon M1,
# still working but useless for the other platforms
docker() {
if [[ `uname -m` == "arm64" ]] && [[ "" == "run" || "" == "build" ]]; then
/usr/local/bin/docker "" --platform linux/amd64 "${@:2}"
else
/usr/local/bin/docker "$@"
fi
}
对我来说,错误发生是因为我在 M1 芯片 Macbook 上构建 docker 图像,并试图在 Linux 机器上 运行 图像。
这对我有用:
使用需要 运行 它的同一台机器构建 docker 图像,并且成功了。
在 M1 运行 上 image。适合我。
docker run -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin wizzn/keycloak:14
与@li Etzyio 回复的内容类似,错误告诉您您用于在本地构建图像的平台与用于图像的平台不同。 M1 计算机(可能还有其他计算机)会发生这种情况,因此,您需要做的是将 --platform <PLATFORM_SPEC>
指定为 docker build
命令,并将 <PLATFORM_SPEC>
替换为错误所在告诉你(在这种情况下 linux/amr64/v8
)。
设置这些环境变量也对我有用:
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
export DOCKER_DEFAULT_PLATFORM=linux/amd64
如果你不想传递标志 --platform
every-time 你 运行 构建命令。
我遇到这个问题是因为在我的 Dockerfile 中我使用了不支持 arm64 的 FROM java:8
。
我通过 运行 以下命令修复它:
docker pull openjdk
然后将我的 Dockerfile 更改为
FROM openjdk:latest
如果您 运行 Docker M1 mac 上的工作站,您可以利用 Docker Workstation multi-CPU architecture support, which includes the buildx command。它允许您为不同的 CPU 创建映像。
要在您的 M1 mac 工作站上构建 Linux/AMD/Intel 映像,运行 以下内容。
docker buildx build --platform=linux/amd64 -t myorg/mytag:1.0.0 .
将 docker buildx
放在前面会启动带有 BuildKit 的命令。有关详细信息,请参阅上面的链接。