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!
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.
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.
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
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:
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.