This questions is specifically about Docker Engine managed plugin system plugins, such as volume or network drivers.
As per the instructions in the link above:
A new plugin can be created by running
docker plugin create <plugin-name> ./path/to/plugin/datawhere the plugin data contains a plugin configuration file
config.jsonand a root filesystem in subdirectory
After that the plugin
<plugin-name>will show up in
docker plugin ls. Plugins can be pushed to remote registries with
docker plugin push <plugin-name>.
How, then, can the plugin be made for multiple architectures(amd64/arm64/others)? The root file system can have binaries for only one architecture after all.