Container compatibility across different hardware and OS

I’m planning on installing Docker for Windows. I’ve been doing a lot of reading but am getting some mixed signals and want to make sure I understand compatibility before I go any further.

If I create and configure a container with Docker for Windows that is running a Linux service, like PiHole, would I be able to take that container and and use it on my RPI3?

What about if I created the PiHole container on the RPI3, would I then be able to use that in Docker for Windows?

I believe the answer to both of those are “yes”, but I just want to get some confirmation. What I’m unsure of is windows containers. If I were to build an ASP.NET application, I should be able to create a Windows container to host that. But will that container then be able to run under Linux? It seems to be the case that .Net Core applications run well under both, but what about the older .NET applications and ASP.NET?

Raspberry Pi is based on the ARM architecture. You can’t run AMD64 containers on those. You would have to rebuild the containers on RPI, which should be easy if you added your customization to a Dockerfile.

Regarding ASP.NET, it seems to be available for Linux, at least the following container sample worked for me:

Container sample: Run a web application

Type the following command to run a sample web application:

docker run -it --rm -p 8000:80 --name aspnetcore_sample microsoft/dotnet-samples:aspnetapp

https://hub.docker.com/r/microsoft/aspnetcore/