✒️
Start your developer blog today!
✉️
Questions?
Email me

How to Fix "Port is already allocated" Error in Docker

Apr 10, 2021 1 min read

I’m sure we’ve encountered this error plenty of times, the one that looks like this.

ERROR: for postgres  Cannot start service postgres: driver 
failed programming external connectivity on endpoint test_postgres_1
Bind for 0.0.0.0:5432 failed: port is already allocated

In this example, we have a another container or an application listening on the port 5432 on our machine. This prevents our service from allocating that port.

Now, how can we fix this?

I was using docker-compose to start and stop my applications, so naturally, I used docker-compose ps to list all running containers and docker-compose down to stop those containers.

However, docker-compose commands only execute on containers related to images in our docker-compose.yml files. We also need to check containers started without docker-compose.

This is the process I would use to stop the correct containers.

First, I would stop all containers started by docker-compose (or just that one container).

docker-compose down

Then, I would list all running containers.

docker container ls -a
CONTAINER ID  IMAGE    ... PORTS                   NAMES
45eec0e12d63  postgres ... 0.0.0.0:5432->5432/tcp  test_postgres_1

Let’s grab the CONTAINER ID and stop/remove the container.

docker stop 45eec0e12d63
docker rm 45eec0e12d63

More Docker Articles