Сбой соединения с док-контейнером из-за проблемы с портом postgis

Мой докер-контейнер может успешно скомпилироваться, но когда я ввожу команду docker-compose build, возвращается следующая ошибка:

Starting docker_etl_1 ... 
Starting 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 ... 
Starting 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1
Starting 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 ... error

ERROR: for 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1  Cannot start service postgis: driver failed programming external connectivity on endpoint 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 (91464afbee8bf7212061797ec0f4c017a56cc3c30c9bdaf513127a6e6a4a5a52): Error starting userland prStarting docker_etl_1 ... done

ERROR: for postgis  Cannot start service postgis: driver failed programming external connectivity on endpoint 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 (91464afbee8bf7212061797ec0f4c017a56cc3c30c9bdaf513127a6e6a4a5a52): Error starting userland proxy: Bind for 0.0.0.0:5432 failed: port is already allocated

Вот мой докер-compose.yaml

version: '2'
services:
  postgis:
    build: ./postgis
    volumes:
      - ../src/main/sql:/sql
    ports:
      - "5432:5432"

  etl:
    build: ./etl
    volumes:
      - ..:/national-voter-file
    entrypoint:
      - python3
      - /national-voter-file/load/loader.py

и вот Dockerfile:

FROM mdillon/postgis:9.5

ENV POSTGRES_DB VOTER

RUN  mkdir /sql
COPY ./dockerResources/z-init-db.sh /docker-entrypoint-initdb.d/

EXPOSE 5432

Docker ps -a возвращает:

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
da74ad97b95c        docker_postgis      "docker-entrypoint..."   About a minute ago   Created                                             docker_postgis_1
5872c6e55fe2        docker_etl          "python3 /national..."   About a minute ago   Exited (2) About a minute ago                       docker_etl_1

Тем не менее, когда я пытаюсь rm $(docker ps -qa) Я получаю следующую ошибку:

rm: da74ad97b95c: No such file or directory
rm: 5872c6e55fe2: No such file or directory

Я не верю, что у меня запущен другой контейнер, поэтому я смущен сообщением Bind for 0.0.0.0:5432 failed: port is already allocated

1 ответ

Решение

Возможно ли, что вы запустили тот же docker-compose ранее, который, вероятно, не удался или, по крайней мере, не смог очистить службы? Попробуйте запустить docker ps -a проверить, существуют ли остановленные контейнеры. Возможно, что остановленные контейнеры перегружают порт. Если это так, просто удалите их, используя docker rm $(docker ps -qa)

Другие вопросы по тегам