【发布时间】:2017-06-22 20:10:28
【问题描述】:
我的docker容器能够成功构建,但是当我输入命令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
这是我的 docker-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 感到困惑
【问题讨论】:
-
您可以检查是否有任何东西绑定到该端口 -
lsof -i4 | grep 5432等。 -
@OliverCharlesworth 该命令不返回任何内容。应该吗?
-
听起来您的系统上正在运行的某些东西已经占用了 5432 端口。是否有可能您的主机上已经运行了一个 postgres 实例?
-
@programmerq 这就是问题所在。谢谢!
标签: docker docker-compose postgis