首页 > 解决方案 > docker ERROR:对于 nginx 无法启动服务 nginx:驱动程序在编程外部连接时失败

问题描述

我是新手Docker并使用设置我的第一个Django应用程序Docker

我的应用程序路径看起来像

app
 |- helloworld
    |- __init__.py
    |- manage.py
 |- static_cdn
    |- static_root
 |- config
    |- nginx
       |- nginx.conf
 |- Dockerfile
 |- docker-compose.yml
 |- requirements.txt
 |- start.sh

的内容Docerfile

FROM ubuntu:18.04

# -- Install Pipenv:
FROM python:3
ENV PYTHONUNBUFFERED 1

ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

# -- Install Application into container:
RUN set -ex && mkdir /app

WORKDIR /app
ADD requirements.txt /app/

RUN pip install -r requirements.txt

# -- Adding dependencies:
ADD . /app/

的内容docker-compose.yml

version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - "9010:9010"
    volumes:
      - .:/app
      - ./config/nginx:/etc/nginx/conf.d
      - ./static_cdn:/static
    depends_on:
      - web
  web:
    build: .
    command: ./start.sh
    volumes:
      - .:/app
      - ./static_cdn:/static
    ports:
      - "9010:9010"
    depends_on:
      - db
    expose:
      - "9010"
  db:
    image: postgres

的内容config/nginx/nginx.conf

upstream web {
    ip_hash;
    server web:9010;
}

server {
    location /static {
        autoindex on;
        alias /static/
    }

    location / {
        proxy_pass http://127.0.0.1;
    }
    listen 9011;
    server_name localhost;
}

的内容start.sh

#!/usr/bin/env bash

# Start Gunicorn processes
echo --: Starting application build
echo --: Creating migration
exec python3 manage.py makemigrations
echo ------: makemigrations complete
echo --: Running migration
exec python3 manage.py migrate
echo ------: migrate complete
echo --: Running collectstatic
exec python3 manage.py collectstatic
echo ------: collectstatic complete
echo Starting Gunicorn.
exec gunicorn helloworld.wsgi:application \
    --bind 0.0.0.0:9010 \
    --workers 3

现在,当我使用 docker 构建时

docker-compose up --build

它给出了错误

错误:对于 nginx 无法启动服务 nginx:驱动程序在端点 koober_nginx_1 上编程外部连接失败(8ea5c084a7283a16afbf136a73dc4b27d9cae35fe14d735b83199ad5d0e03431):绑定 0.0.0.0:9010 失败:端口已分配

我遵循了一些教程来创建这些 Docker 文件和 nginx conf 文件。

1.我该如何解决上述问题。
2. 是否需要FROM ubuntu:18.04配合以上配置使用?

编辑 2

现在,它在从start.sh命令 创建迁移后卡住了在此处输入图像描述

标签: djangodockernginxdocker-composedockerfile

解决方案


2022 年 2 月更新:

杀死所有 nginx 进程

sudo killall nginx

然后:

docker-compose up --build

推荐阅读