Docker容器遇到套接字问题(单独的Flask Nginx容器)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Docker容器遇到套接字问题(单独的Flask Nginx容器),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2288字,纯文字阅读大概需要4分钟。
内容图文
![Docker容器遇到套接字问题(单独的Flask Nginx容器)](/upload/InfoBanner/zyjiaocheng/962/4413b4704abd44daa099954cb101b6ff.jpg)
在运行docker-compose build&& amp;之后,我的多容器Docker设置遇到以下错误docker-compose up并尝试点击我的索引页面:
[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
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的建议,我将使用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, client: 192.168.99.1, server: localhost, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:8000", host: "192.168.99.100"
解决方法:
看起来您的某个应用程序正在尝试通过Unix socket而不是TCP / IP进行连接.
这不适用于不同的容器,因为在另一个容器中无法访问一个容器(套接字所在的容器)中的文件系统.
解决方案是重新配置应用程序以通过TCP / IP而不是Unix套接字进行连接.
可以通过将套接字所在的文件系统中的位置暴露给另一个容器来进行连接,但我从来没有尝试过这个&不知道它是否有用.
内容总结
以上是互联网集市为您收集整理的Docker容器遇到套接字问题(单独的Flask Nginx容器)全部内容,希望文章能够帮你解决Docker容器遇到套接字问题(单独的Flask Nginx容器)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。