Docker
Apple Silicon
M1
MySQL
ARM64 Compatibility

Docker Apple Silicon/M1 Preview MySQL no matching manifest for linux/arm64/v8 in the manifest list entries

Master System Design with Codemia

Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.

The transition from Intel to Apple Silicon chips, such as the M1, has been a significant technological shift, with numerous applications and tools having to update and optimize their software to support the new architecture. Docker, a prominent platform for developing, shipping, and running applications in containers, has been part of this transition, aiming to support the ARM architecture of the M1 chips. However, developers often encounter issues during this transition. One such common problem is the error message: "no matching manifest for linux/arm64/v8 in the manifest list entries" when attempting to use Docker images like MySQL on Apple Silicon/M1 preview.

Understanding Docker and Architectures

Docker runs containers based on images, and these images are built for specific OS and CPU architectures. The move from an x86_64 (Intel) architecture to ARM architecture requires that Docker images need to be compatible with ARM (linux/arm64) for them to run natively on new Apple Silicon chips like M1.

Docker Image Manifest

Each Docker image has a manifest, which is essentially a description of the image, including its architecture. When Docker pulls an image, it looks for a manifest that matches the OS and architecture. If an appropriate manifest isn't found, Docker throws an error: "no matching manifest for linux/arm64/v8 in the manifest list entries."

Example: MySQL on Apple Silicon

Running MySQL in Docker on Apple Silicon can raise this error if the specific MySQL version being pulled does not support the ARM architecture.

bash
docker pull mysql:8.0

If the image version you are trying to pull has not been built for the ARM architecture, Docker cannot find a matching manifest, resulting in the error.

Solutions to Address the Manifest Error

Multi-Arch Build Support

Some official Docker images, like newer versions of MySQL, come with multi-architecture support, which includes ARM. Ensure to use the latest version or specified tags that explicitly state ARM support.

Use Platform Override

Docker allows you to specify the platform during pull or run commands using the --platform flag. This enables pulling an image built for a different architecture, allowing it to run under emulation.

bash
docker pull --platform linux/amd64 mysql:8.0

This would pull the MySQL image for Linux x86_64 architecture and run it using Apple’s Rosetta 2 translation layer.

Build Images Locally

If official images don't support ARM, consider building the image from source on the M1 host. This can be done by cloning the Dockerfile repository and using:

bash
git clone https://github.com/mysql/mysql-docker.git
cd mysql-docker/8.0
docker build -t mysql:local .

This command builds a MySQL Docker image compatible with the host architecture.

Challenges and Considerations

Performance Implications

Running non-native architecture images using translation layers like Rosetta 2 may lead to reduced performance. Building native images or using multi-arch images is recommended for production environments to ensure optimal performance.

Legacy Images

Some legacy images won’t be updated to support ARM, requiring ongoing maintenance or workarounds to be run on Apple Silicon.

Community and Support

The community continuously builds and maintains ARM-compatible images, and checking Docker Hub or extended community repositories may provide alternatives.

Summary Table

Key PointDetails/Notes
Error"No matching manifest for linux/arm64/v8 in the manifest list entries."
CauseDocker can't find an ARM-compatible image; lack of ARM manifest.
Solution 1Use newer image versions with multi-arch support if available.
Solution 2Use --platform option to run non-native images with Rosetta 2 emulation (e.g., linux/amd64).
Solution 3Build images from source on M1 to ensure ARM compatibility.
Performance ConsiderationPossible performance impact using non-native architecture images due to emulation overhead.
Community and ResourceLeverage Docker Hub and community forums for support.

Overall, while running Docker on Apple Silicon/M1 introduces some challenges regarding image compatibility and architecture concerns, these can generally be surmounted with a mixture of updated images, emulation, and local builds. As software ecosystems continue to adapt to ARM architecture, the transition will become smoother and support more robust.


Course illustration
Course illustration

All Rights Reserved.