Changing a postgres containers server port in Docker Compose

Some people may wish to actually change the port Postgres is running on, rather than remapping the exposed port to the host using the port directive.
To do so, use command: -p 5433

In the example used for the question:

db:
  image: postgres:latest
  environment:
    POSTGRES_PASSWORD: route_admin
    POSTGRES_USER: route_admin
  expose:
    - "5433" # Publishes 5433 to other containers but NOT to host machine
  ports:
    - "5433:5433"
  volumes:
    - ./backups:/home/backups
  command: -p 5433

Note that only the host will respect the port directive. Other containers will not.

Leave a Comment