Tag: http

Docker化Flask API上的部分响应错误(长响应)

我有一个Flask API(Python 3.5),在我的本地设置中返回一个完整的响应。 目前,我已经docker化的应用程序,现在的应用程序运行在我的本地docker的容器。 我目前的问题是,当我发送相同的请求到泊坞窗容器内的相同的服务, 响应被截断 。 邮差只是停止工作,curl将返回CURL_PARTIAL_RESPONSE错误。 我的实际完整响应是> 6000000字节。 这是一个长期的回应。 但从docker我得到部分回应,它似乎被切断。 是否有一些环境variables或库,docker容器需要不要截断这个响应? 或者也许这是一些与烧瓶有关的财产? 我有本地相同的设置,并在本地设置响应不被截断。 我怀疑docker容器有一些设置,由于我回来的部分回应。 任何指针,这是赞赏。 DockerFile: FROM python:3.5 WORKDIR /worker_deploy ADD trainer /worker_deploy/ RUN pip install -r requirements.txt EXPOSE 80 EXPOSE 5000 ENTRYPOINT ["python","/service/run_docker_trainer.py"] requirements.txt有一些其他的库,但我只包括python和flask版本: Flask==0.12.2 Python 3.5.0 像这样启动容器: docker run -it -p 5000:5000 miracle (奇迹是我的docker形象,它开始于0.0.0.0:5000) 然后我发出一个POST请求127.0.0.1/test,我得到一个JSON 1.6MB的响应,我只接收部分输出,并说curl说curl连接closures(18)错误:CURL_PARTIAL_RESPONSE 我在烧瓶中的代码返回响应使用“jsonify”。 所以这不是stream式响应。 @flask_app.route('/train', methods=['POST']) def […]

如何将来自Docker的http请求发送到本地主机或虚拟机

作为Docker和VM的新手,我遇到了一个障碍。 我有一个节点应用程序,需要从Docker container发送POST请求到Virtual Machine或我的local machine 。 我已经通过了Docker文档的阅读,但仍然不明白我需要做什么才能做到这一点。 那么我怎样才能从运行在Docker Container中的节点应用程序发送一个http请求到我的Vagrant Box ?

将一个docker集装箱的所有请求redirect到另一个?

我有两个docker容器在主机上运行,​​比如说A和B. Docker请求在其他主机上运行的服务,这个请求和回复工作正常。 我想要做的是,我想redirect来自A的所有请求,通过容器B(用于某些审计)转到服务,所有来自服务的响应再次到达A到B. 我怎样才能做到这一点? 是否有可能实现这样的透明设置,使得A永远不会知道B正在审计其请求和响应呢?

为Docker父图像构build设置http_proxy

我在依赖所有Internet访问的内部代理的机器上运行Docker。 我想基于我的图像在使用这个Dockerfile的0.9.5130 pointslope/datomic-pro-starter:0.9.5130 。 它在ONBUILD使用curl 。 如何在该级别设置http_proxy? 我尝试了ENV和ARG但我不认为这是为父图像。

在链接的Docker容器中发出http请求时出错

我正在用Angular.js 2,Elasticsearch和Docker构build一个Web应用程序。 我试图通过我的Angular应用程序使用链接的URL“ http:// search:9200 / _cat / health ”来访问Elasticsearch,但我得到一个GET http://search:9200/_cat/health net::ERR_NAME_NOT_RESOLVED错误。 奇怪的是,当我从web应用程序的容器中curl -XGET "http://search:9200/_cat/health" ,一切都很好,我得到了正确的回应。 这是我各自docker-compose.yml文件 version: '2' services: search: image: elasticsearch:latest command: elasticsearch -Des.network.host=0.0.0.0 ports: – "9200:9200" – "9300:9300" web: build: . command: npm start volumes: – .:/visfx ports: – "3000:3000" links: – search 这里也是对elasticsearch服务的调用 @Injectable() export class ElasticsearchService { private _esUrl = […]

Docker阻塞高负载的传出连接?

我们有一个node.js web服务器,它向外部API发送一些传出的http请求。 在docker上使用dokku运行。 加载一段时间后(30req / s),这些传出请求不再得到响应。 下面是我用常量req / s进行testing时所做的一个图表: incoming和outgoing是并发请求的数量(不是初始化请求的数量)。 (在图中很难看出来,但是在每次约10个请求时它是相当稳定的。) response time仅适用于外部请求。 你可以清楚地看到,他们突然开始失败(我们的1000毫秒超时)。 我们发送的请求越多,遇到这个问题的速度就越快,所以我们必须对每个请求都有一些限制。 我使用了netstat -ant | tail -n +3 | wc -l netstat -ant | tail -n +3 | wc -l netstat -ant | tail -n +3 | wc -l在主机上获得打开的连接数,但是只有〜450(大部分是TIME_WAIT )。 这不应该达到套接字限制。 我们也没有达到任何内存或CPU的限制。 我也尝试在Docker外的同一台机器上运行相同的应用程序, 它只发生在docker 。

Docker如何发送请求(curl – 获取,张贴)一个容器到另一个容器

GET(和POST PUT ….)请求在一个容器中使用curl到另一个容器。 $ docker ps CONTAINER ID IMAGE COMMAND PORTS NAMES b184219cd8f6 otp_totp "./run.sh" 0.0.0.0:3000->3000/tcp totp_api c381c276593f service "/bin/sh -c" 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp service d0add6b1c72e mysql "/tmp/run.sh" 0.0.0.0:3306->3306/tcp mysql 当我发送请求curl -X GET http://localhost.3000到本地的totp_api container totp_api return {'status':200} 但我想在service容器中发送请求 像// curl -X GET http://localhost:3000到totp_api service容器( totp_api exec totp_api / bin / bash), totp_api将返回{'status':200}到server容器 project_folder ㄴ- docker-compose.yml […]

TCP接收数据包,但忽略它们

我有一个非常奇怪的networking问题。 实际的networkingconfiguration相当复杂,因为我使用Openstack和Docker来构build虚拟networking。 然而,问题不在这里,因为我正在捕获我的主机接口,并以正确的方式看到所有的数据包….但由于某些原因,我不知道,似乎TCP忽略了它们,尽pipe它们有已收到:它不会发送ACK,并且不会将数据发送到应用程序。 在我的试验中,我从主机(192.168.4.100)向服务器jetty(IP 192.168.4.3)发送了一个HTML页面的HTTP GET请求。 我看到用Wireshark在192.168.4.100上捕获的是: 192.168.4.100 -> SYN -> 192.168.4.3 192.168.4.3 -> SYN, ACK -> 192.168.4.100 192.168.4.100 -> ACK -> 192.168.4.3 192.168.4.100 -> GET / HTTP/1.1 -> 192.168.4.3 192.168.4.3 -> ACK -> 192.168.4.100 192.168.4.3 -> Fragment 1 of HTTP 200 OK response -> 192.168.4.100 192.168.4.3 -> Fragment 2 of HTTP 200 OK response […]

ECS将不会启动实例,“由于无法find资源,无法执行任务”。

我无法弄清楚为什么我的ecs服务不会启动,并不断发出错误“服务无法放置任务,因为资源无法find”。 在我的任务定义中,我有500个CPU单位专用和250个内存,只是一个非常小的样本节点应用程序,只是提供我的静态资产。 我正在启动我的服务与1任务,没有ELB。

如何发送HTTP请求到在泊坞窗容器中运行的服务器?

我已经build立了一个Java应用程序,它充当一个Web服务器并处理http请求。 我已经testing过它在容器之外工作(但它在容器中),但是当容器在容器中时,我的请求似乎没有得到它。 服务器侦听端口3971,Dockerfile如下所示: FROM java:8 ADD VaultServer / EXPOSE 3971 EXPOSE 3972 ENTRYPOINT ["java", "-jar", "VaultServer.jar"] 调用根地址应该返回一些东西(通常我会发送一个GET到http:// localhost:3971 / )。 我已经尝试用docker-machine的ip地址replace'localhost',并且在检查我的服务器正在运行的容器时得到的ip地址,但都没有响应。 当我打电话给docker机的IP地址,我得到ERR_CONNECTION_REFUSED。 还有什么我需要启用?