Docker群组合成文件,将架构设置为arm64

我有一个没有启动容器的arm64机器集群的问题。 全部保持为0/2,0/1等。 这似乎是由于调度安装程序将它们部署在amd64而不是arm64上,但我找不到在哪里更改(我假设有一个docker-composeconfiguration)。

$ sudo docker service ls 1 ↵ ID NAME MODE REPLICAS IMAGE PORTS t761cgtu2n4o persistence_mariadb replicated 0/1 mojlighetsministeriet/mariadb-arm64:latest *:3306->3306/tcp l1gxlfuwtfs9 services_email replicated 0/2 mojlighetsministeriet/email-arm64:latest 6o1ud2la0eig services_groups replicated 0/2 mojlighetsministeriet/groups-arm64:latest 

在检查服务时,我得到:

  "Placement": { "Platforms": [ { "Architecture": "amd64", "OS": "linux" } ] }, 

我正在使用docker-compose文件来configuration服务,我如何标记图像在arm64机器上运行(图像在$ docker运行的arm64机器上正常启动)?

这是一个服务configuration的例子:

  email: image: mojlighetsministeriet/email-arm64 secrets: - smtp-password environment: SMTP_HOST: smtp.example.com SMTP_PORT: 587 SMTP_EMAIL: user@example.com deploy: replicas: 2 update_config: parallelism: 1 delay: 10s failure_action: continue monitor: 60s max_failure_ratio: 0.3 restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s labels: - traefik.docker.network=proxy - traefik.port=80 - traefik.enable=true networks: - proxy 

为了使docker映像在基于ARM的计算机上运行,​​基本映像(容器)必须是基于ARM的。

你不能告诉docker-compose在ARM模式下运行。 实际的图像必须是基于ARM的。

例如hub.docker.com上的这里,您可以find为基于ARM的计算机创build的基础映像