How to fix no matching manifest - Ubuntu 22.04

Hello,

I have installed Docker and docker compose and tested it and i got the “Hello World” message, so everything works fine

After that i tried to install a Node.js backend, but idk why i keep getting this error message
" no matching manifest for linux/arm64/v8 in the manifest list entries "

i have a VPS server, 4 CPU, 24 RAM, running Ubuntu 22.04, ARM64
Idk what is the problem and what shall i do to fix it!
Thanks!

That image does not have a compatible version with your CPU. You can try to use QEMU to emulate it.

https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/

sudo apt-get install qemu binfmt-support qemu-user-static
docker run --platform linux/amd64 ...

This way you can use the AMD64 version, but the emulation is not always perfect, and it may be slower then running a container from a compatible image.

Thanks for your reply @rimelek

I ran this command sudo apt-get install qemu binfmt-support qemu-user-static
and the setup works fine

But i’m not sure about this docker run --platform linux/amd64
it’s not working!

Please check this photo: CleanShot 2022-09-05 at 6.21.39 · CleanShot Cloud
is there any specific command should i use or should i add anything to the 2nd command?

note: I’m new to docker stuff, didn’t use it before

Don’t just copy-paste, please. When a command gives you an error message, check the help:

docker run --help

That three dots in my code block indicated that it was not a complete command. It was only the beginning of the command just to show you the --platform option and its value. Since you didn’t share how you started the container, I used a simple docker command. The point is just using the platform option.

I fully understand your point, but i never used docker at all before, that’s why i’m trying to know what shall i do or which commands should i used to be able to fix the issue

The only reason for using it right now is for installing a node.js backend site, which is requiring docker, and i’m stuck in here don’t know how to pass this step of “no matching manifest”

That is not a problem at all. You are welcome here and we are happy to help you. However, we can’t help you without details and using the --help option is not Docker specific. If you don’t understand what the help command gives you or you don’t even use the docker command, because you start the containers other way, you need to share how you do it now so we can help you to modify your command or configuration file.

Ah okay … now i understand what you mean
I\m going to record a short video so maybe i can clarify my problem better for you

and really thanks for your help :slight_smile:

Hi @rimelek the video is ready,

can i please send you the link of the video to your email or DM if available?
because there’re some stuff into my video i don’t want to share it public

You can send me the link in DM.
Update (just for other visitors): I have sent a message

Ok but sorry where to find the DM … i’m really very new here :slight_smile:

Okay, so you use Docker Compose v2. You need to set the platform in the compose file (docker-compose.yml)
Open the file and find the “services:” section. In that section you will find the services. You can set the platform option for each service. Example:

services:
   myservice:
      platform: linux/amd64
   myotherservice:
      platform: linux/amd64

Again, this is just an example. Your actual compose file will be larger an may container more or less services.

After that you can run docker compose up -d again.

Man, BIG thanks for everything

it’s working 100% … OMG can’t believe, spent 4 days looking for this solution, you saved and made my day :slight_smile:

I wish if you like to accept any donations, i’m really happy!

Hello @rimelek

I just need small thing if possible, after installed the backend yesterday i noticed one issue which is:


Error response from daemon: driver failed programming external connectivity on endpoint root-mysql-1 (942f291ec16b081fd85bf9b786b476b11c0270c53d56cc92a8fc8141ce59beb8): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use


what shall i do in this case please!

Update: I fixed it
just stopped the MySQL and then ran docker compose up -d
after that i started MySQL again and now it’s working perfectly.

This is not actually an issue, it’s telling that this port 3306 is using (busy) with another service which is MySQL, so you can’t run Two services in the same time using same port.

True, as you can’t run two applications listening on the same port on the same IP address. Using containers and network namespaces you can run multiple MySQL servers using the same port but all of them will have their own local IP address. When you “publish” a port using the “ports” section in the compose file, you tell Docker to listen on a port of the host machine and forward all traffic from that port to the container’s IP address. This way you rapplication in the container does not have to know anything about the host, but you need to make sure you configure the ports correctly on the host.