Issues w/ ASP.NET Core app connecting to PostgreSQL on Docker Container

I have pulled and ran a container for PostgreSQL on my Ubuntu Server using Docker, using the instructions from these instructions.

Using Visual Studio on my Windows 10 workstation, I have developed a Blazor Web Page that connects to the PostgreSQL docker container on my Ubuntu Server using Npgsql, and uses it as the back-end. I eventually used Visual Studio’s docker image building capabilities to convert my deployed ASP.NET app to a docker container that I want to run on the same Ubuntu server.

Running the container from Visual studio seems to work fine, I am successfully able to load the web page and I’m able to use the PostgreSQL as my back-end. I am also able to connect to the server without using Visual Studio, by just running the deployed image as a container on my workstation.

I want to have the Blazor web page run from the same Ubuntu Server as my PGSQL docker container, but on different containers, so that I can access the app from any computer on my local network. I pushed the container to my repository on Docker, and then pull it on my Ubuntu Server so that it could run on there.

When I run the Blazor App container on Ubuntu, I keep getting the following exception when loading a page that accesses data from my PGSQL container:

System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.
 ---> Npgsql.NpgsqlException (0x80004005): Exception while connecting
 ---> System.TimeoutException: The operation has timed out.

What I’ve tried:

  • Running the container on the same network ("pgnetwork") as the PGSQL container.
  • With the container running, I was successfully able to connect to my web page onto a page that doesn’t use the PGSQL back-end, but it still gives me this exception when loading a page that does.
  • Installed ping on to the container on my Ubuntu Server, and pinged the PGSQL container. The pings were successful every time.

I am relatively new to Docker and ASP.NET core, and I’m not an IT guy, so any help or ways to troubleshoot this would be very helpful.

Source: Docker Questions