instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from consuming excessive resources on your host. Here's the command:
  
  $ docker run -e POSTGRES_PASSWORD=secret --memory="512m" --cpus="0.5" postgres
  This command limits container memory usage to 512 MB and defines the CPU quota of 0.5 for half a core.Monitor the real-time resource usageYou can use the docker stats command to monitor the real-time resource usage of running containers. This helps you understand whether the allocated resources are sufficient or need adjustment.By effectively using these docker run flags, you can tailor your containerized application's behavior to fit your specific requirements.Try it outIn this hands-on guide, you'll see how to use the docker run command to override the container defaults.Download and install Docker Desktop.Run multiple instances of the Postgres databaseStart a container using the Postgres image with the following command:
  
  $ docker run -d -e POSTGRES_PASSWORD=secret -p 5432:5432 postgres
  This will start the Postgres database in the background, listening on the standard container port 5432 and mapped to port 5432 on the host machine.Start a second Postgres container mapped to a different port.
  
  $ docker run -d -e POSTGRES_PASSWORD=secret -p 5433:5432 postgres
  This will start another Postgres container in the background, listening on the standard postgres port 5432 in the container, but mapped to port 5433 on the host machine. You override the host port just to ensure that this new container doesn't conflict with the existing running container.Verify that both containers are running by going to the Containers view in the Docker Desktop Dashboard.
  Run Postgres container in a controlled networkBy default, containers automatically connect to a special network called a bridge network when you run them. This bridge network acts like a virtual bridge, allowing containers on the same host to communicate with each other while keeping them isolated
  ```