微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Docker容器遇到socket问题单独的Flask + Nginx容器

在运行docker-compose build && docker-compose并尝试打开我的索引页后,我遇到了以下多错误

[crit] 8#8: *1 connect() to unix:/tmp/uwsgi.sock Failed (2: No such file or directory) while connecting to upstream,client: 192.168.99.1,server: localhost,request: "GET / HTTP/1.1",upstream: "uwsgi://unix:/tmp/uwsgi.sock:",host: "192.168.99.100"

这是我的docker-compose.yml:

web: restart: always build: ./web-app expose: - "8000" command: /usr/local/bin/uwsgi --ini sample-uwsgi.ini Nginx: restart: always build: ./Nginx/ ports: - "80:80" links: - web:web

Nginx的/ Dockerfile

FROM Nginx RUN rm /etc/Nginx/conf.d/default.conf ADD sample-Nginx.conf /etc/Nginx/conf.d/

Nginx的/采样Nginx.conf

Docker根文件夹在Windows位置

如何在需要tty的Docker构build期间运行命令?

在Docker容器中运行的JVM的驻留集大小(RSS)和Java总承诺内存(NMT)之间的差异

Nginx反向代理与链接的Docker容器失败

使用Docker for Windows Installer v1.6.0安装的Boot2Docker在start.sh中的“第36行:cd:HOME not set”

server { listen 80; server_name localhost; charset utf-8; client_max_body_size 75M; location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } }

web应用程序/ Dockerfile

FROM ansible/ubuntu14.04-ansible:stable workdir /root ADD application.py application.py ADD requirements.txt requirements.txt ADD sample-uwsgi.ini sample-uwsgi.ini ADD ansible /srv/ansible workdir /srv/ansible RUN ansible-playbook container-bootstrap.yml -c local

web应用程序/采样uswgi.ini

[uwsgi] module = application callable = app master = true processes = 5 socket = /tmp/uwsgi.sock chown-socket = www-data:www-data vacuum = true enable-threads=True die-on-term = true

UPDATE

从@kryten的build议我将使用TCP / IP

更新了Nginx.conf:

server { listen 80; server_name localhost; charset utf-8; client_max_body_size 75M; location / { uwsgi_pass localhost:8000; include uwsgi_params; } }

更新了uwsgi.ini:

[uwsgi] module = application callable = app master = true processes = 5 socket = localhost:8000 chown-socket = www-data:www-data vacuum = true enable-threads=True die-on-term = true

现在正在追求以下错误

[error] 8#8: *1 connect() Failed (111: Connection refused) while connecting to upstream,upstream: "uwsgi://127.0.0.1:8000",host: "192.168.99.100"

docker中的多个nodejs工作者

在Docker容器中安装cgroups

如何在Windows Server 2016上运行Linux Docker镜像?

如何在docker上设置Nginx中的大量dynamic虚拟主机?

无法将Windows主机目录挂载到Docker容器

它看起来像你的应用程序之一是试图通过Unix套接字,而不是通过TCP / IP连接。

这将不会在不同的容器中工作,因为一个容器中的文件系统(套接字所在的位置)不能在其他容器中访问。

解决方案是重新配置您的应用程序连接通过TCP / IP而不是一个Unix套接字。

通过将套接字所在的文件系统中的位置暴露给另一个容器来连接也许是可能的,但我从来没有试过这个&不知道它是否会工作。

由于web和Nginx是独立的容器,因此Nginx需要通过TCP连接到另一台计算机 。 链接容器已经完成了大部分工作,你只需要将上游指向web:8000而不是localhost。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐