Hen*_*sen 6 arm docker docker-swarm raspberry-pi3
我有一个基于 raspberry pi 3 的 docker swarm。我有 3 个节点。我在我的笔记本电脑上创建了一个图像并将其推送到 docker 注册表。
如果我尝试使用 docker run 在 swarm 中的节点上启动图像,它会按预期工作。
docker run -ti alexellis2/pi-sharp:0.1
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试使用 docker 服务启动它,它就会失败。
docker service create --name test alexellis2/pi-sharp:0.1
Run Code Online (Sandbox Code Playgroud)
错误 1/1:没有合适的节点(3 个节点上不受支持的平台)
如果我对服务进行 docker 检查,它会显示此信息。
"Placement": {
"Platforms": [
{
"Architecture": "amd64",
"OS": "linux"
}
]
},
Run Code Online (Sandbox Code Playgroud)
我试图修剪容器和图像无济于事。
我的问题是为什么我可以使用 docker run 但不能使用 docker service 来使用图像?
小智 4
当您在 PC 上构建时,构建环境是x86。如果您在 Pi 上构建映像,则构建环境和架构为armhf。
这些图像不是跨平台的,这是当今已知的问题。 https://developer.ibm.com/linuxonpower/2017/07/27/create-multi-architecture-docker-image/
您可能是对的,在某些情况下,docker run 与 docker service 可能会奇怪地工作(docker 服务导致错误状态,docker run 工作)