instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from another container. To do so, you will now run the application out of a container instead of natively.But before you do that, itâs important to understand how Kafka listeners work and how those listeners help clients connect.Understanding Kafka listenersWhen a client connects to a Kafka cluster, it actually connects to a âbrokerâ. While brokers have many roles, one of them is to support load balancing of clients. When a client connects, the broker returns a set of connection URLs the client should then use for the client to connect for the producing or consuming of messages. How are these connection URLs configured?Each Kafka instance has a set of listeners and advertised listeners. The âlistenersâ are what Kafka binds to and the âadvertised listenersâ configure how clients should connect to the cluster. The connection URLs a client receives is based on which listener a client connects to.Defining the listenersTo help this make sense, letâs look at how Kafka needs to be configured to support two connection opportunities:Host connections (those coming through the hostâs mapped port) - these will need to connect using localhostDocker connections (those coming
  ```