Question: I have the following two containers started but kafka says connection refused.

`docker run zookeeper` and `docker run wurstmeister/kafka`

I run it just like that and the connection is refused. In the logs it says:

> 
> INFO Opening socket connection to server localhost/127.0.0.1:2181.
>  Will not attempt to authenticate using SASL (unknown error)
>  (org.apache.zookeeper.ClientCnxn)
> 
> 
> 

then:

> 
> WARN Session 0x0 for server null, unexpected error, closing socket
>  connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
>  java.net.ConnectException: Connection refused
> 
> 
> 

zookeeper is started first and it on 2181, when starting kafka it looks at 2181 "zookeeper" then blows up on me. Advice?

Answer: 
Had the same issue. What helped was actualy:

1. Creating a bridge network: `docker network create -d bridge kafka-network`
2. Running a Zookeeper within this network: `docker run -d -p 2181:2181 --network kafka-network --name zookeeper zookeeper:latest` along with exposing port `2181`
3. Running a Kafka docker attaching it to the network and using Zookeeper's container name as a host: `docker run -d -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -p 9092:9092 --network kafka-network --name kafka confluentinc/cp-kafka:latest`
Hi Drew you need to provide specific zookeeper docker container IP. Instead of localhost in Kafka configuration. You can get Docker IP by running 

> 
> docker ps
> 
> 
> docker inspect 
> 
> 
> 

And you need to make sure that Docker containers are able to communicate with each other. Please refer the following <https://docs.docker.com/engine/userguide/networking/default_network/container-communication/>