Tag: rest

运行exec时出错500,启动Docker Remote API

我正在使用Docker Remote Api和Python请求v2.2.1来运行一个exec语句。 这是我正在使用的代码: import requests import json containerName = 'my_container_name' startContainerRequest = requests.post('http://127.0.0.1:4243/containers/' + containerName + '/start') print startContainerRequest.status_code #result: 204 payload = {'Cmd':["date"]} headers = {'Content-type': 'application/json'} execCreateRequest = requests.post('http://127.0.0.1:4243/containers/' + containerName + '/exec', data=json.dumps(payload), headers=headers) print execCreateRequest.status_code #result: 201 execStartRequest = requests.post('http://127.0.0.1:4243/exec/' + execCreateRequest.json()['Id'] + '/start', headers=headers) print execStartRequest.status_code #result: 500 print […]

如何让两个Docker容器相互通话?

我有两个Docker容器正在运行。 一个是MongoDB,另一个是运行简单的rest API的容器,它应该能够查询MongoDB容器。 端口映射 0.0.0.0:28001->27017/tcp(mongodb) 0.0.0.0:3000->3000/tcp(restapi) 用于MongoDB映像的命令 docker run -p 28001:27017 -v /home/ubuntu/docker/mongodb/mongod.conf:/etc/mongod.conf –name mongodb_container -d mongodb_image 我重写mongo.conf来添加0.0.0.0来绑定IP net: port: 27017 bindIp: [127.0.0.1,0.0.0.0] 用于API的运行命令: docker container run -it -v /home/ubuntu/docker/node_modules:/usr/lib/node_modules -p 3000:3000 –name rest_container rest_image /bin/bash 我能够查询其余的API,但它挂起和超时(永远不会返回结果)。 其余的configuration文件如下所示: { "db": { 'port': 28001, 'host': "192.168.123.191" }, 'server': { 'port': 3000, 'timeout': 120, 'address': "0.0.0.0" }, […]

在Docker中创buildREST调用端点

我正在构build一个Spring Boot应用程序,它有几个不同的REST端点。 它可以在本地打包并成功启动为jar文件。 在本地运行时,我可以通过“ http:// localhost:8080 / endpoint?params ..”来访问它的端点。 我的任务是现在准备这个应用程序运行Dockers。 仍然在我的本地机器上工作,我创build了一个基于Java:8映像的Dockers容器。 在这个容器中,我已经能够成功地从.jar运行我的应用程序。 我的问题是,当应用程序托pipe在Docker之外时,我不明白如何调用应用程序内的REST端点,因为逻辑上localhost:8080 / endpoint不再响应该调用。 辅助信息:我的本地计算机是Windows,Docker镜像是Ubuntu(最终将会启动到Linux服务器上)。 更新:用下面的Dockerfile创build一个新的镜像: FROM openjdk:8 MAINTAINER My Name email@email.com COPY . /usr/src/myapp WORKDIR /usr/src/myapp EXPOSE 8080 RUN javac Main.java CMD ["java", "Main"] 同样的问题,无法通过http:// localhost:8080 / endpoint访问端点 任何帮助将不胜感激。 谢谢!

如何使用Apache Marathon REST API扩展Docker实例?

是否可以使用Mesosphere Marathon REST API来扩展和减lessDocker容器/实例的数量? 端点GET /deployments似乎只能看到下一个可能的操作。 如何使用REST API扩展实例(编程方式:可能使用curl脚本而不使用Marathon Web界面)?

从Docker公开/发布端口

我有一个小的REST API在Docker容器中运行: [2015-10-15 10:47:05] INFO WEBrick 1.3.1 [2015-10-15 10:47:05] INFO ruby 2.2.3 (2015-08-18) [x86_64-linux] [2015-10-15 10:47:05] INFO WEBrick::HTTPServer#start: pid=8 port=9292 我有IP上的docker虚拟机: 192.168.99.100 我正在尝试发布/公开我的端口: docker run –publish 9292:9292 788a36b503e2 泊坞窗ps显示: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d6b34469ebf 788a36b503e2 "/bin/sh -c 'rackup -" 45 seconds ago Up 44 seconds 0.0.0.0:9292->9292/tcp hopeful_bhaskara 而我正在尝试打击REST API: curl 192.168.99.100:9292/auth/3/xyz […]

如何将docker上的spring应用程序连接到docker上的activemq集群

我有一个简单的REST应用程序在Docker容器中的Tomcat8上运行。 我也有3个docker容器,分别在端口61617和61618 master slave上运行ActiveMQ 5.11.1代理(使用mysql作为持久化)。 docker run –name myRESTApp -t -i –rm -p 8080:8080 -p 9090:9090 -v $(pwd)/webapps:/usr/local/tomcat/webapps -v $(pwd)/logs:/usr/local/tomcat/logs –link activemq1:activemq myRESTApp 在myRESTApp的activeMQConfiguration.xml : <property name="brokerURL" value="failover:(#{systemEnvironment['ACTIVEMQ_PORT_61616_TCP']})?randomize=false"/> 3个ActiveMQ代理在他们的activemq.xml有这个: <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:0" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true" /> </transportConnectors> 主人最初是在61616运行,我停止了主人,奴隶(港口61617 )成为新的主人。 甚至在61616的主人被停止之前,它就投掷了 Connect fail to: tcp://172.17.0.84:61616, reason: java.net.ConnectException: Connection refused 为什么链接后,它仍然无法连接到经纪人? 在61616上的主站停止后,将失败: Connect fail to: tcp://172.17.0.84:61616, […]

RESTful API 2x nodejs应用程序在同一台服务器上,具有后备function

微服务我希望运行front-end-web和back-end-api nodejs应用程序。 通过RESTful HTTP API在单台机器上进行通信(读取ec2)。 无状态我想在未来横向扩展ec2实例。 使用Redis (ElasiCache)和MySQL (RDS)(无状态读取) 负载平衡缩放时,我会负载平衡与ELB。 那里没有问题。 问题:如果back-end-api在机器上出现故障,是否有可能以某种方式回back-end-api另一台运行back-end-api实例的ec2服务器? 我将如何做到这一点。 为什么不分离API应用程序? 以及我想保持在同一台服务器上的延迟和可维护性。 哦,顺便说一句,我使用docker:-)

使用Apache Camel在Docker容器中调用服务时的响应时间很长

我使用Spring Boot(v1.2.8)运行Apache Camel v2.17,在四个独立的Docker容器中运行三个微服务(也是Spring Boot)。 我的骆驼应用程序公开一个REST服务,接受三个请求参数(每个微服务一个)。 然后将每个参数发送到相应的微服务。 然后将每个微服务的响应汇总在Camel REST服务的响应主体中。 在这里我的路线更好的理解: public void configure() { restConfiguration().component("restlet").port(8080).bindingMode(RestBindingMode.auto); rest("/api/v0.1").get("/aggregated") .param().name("service1Id").dataType("long").required(false).endParam() .param().name("service2Id").dataType("long").required(false).endParam() .param().name("service3Id").dataType("long").required(false).endParam() .route() .split(header(Exchange.HTTP_QUERY).tokenize("&"), new ServiceResultAggregator()) .choice() .when().method("routingHelper", "isRequiredIdKey(*, 'service1Id')") .to("direct:dynamic") .when().method("routingHelper", "isRequiredIdKey(*, 'service2Id')") .to("direct:dynamic") .when().method("routingHelper", "isRequiredIdKey(*, 'service3Id')") .to("direct:dynamic") .otherwise() .bean("routingHelper", "clearBody") .endChoice() .end(); from("direct:dynamic").process("eurekaProcessor") .toD("restlet:${header.serviceUrl}${header.serviceValue}?bridgeEndpoint=true&throwExceptionOnFailure=false"; } eurekaProcessor从eurekaProcessor服务器获取相应的服务,并将其url写入消息头。 现在我的问题: 当我用docker设置调用Camel REST服务时,每个服务的请求时间大约需要5秒。 链接到日志文件 但是,如果我在没有docker的情况下在本地机器上运行所有服务,响应时间要短得多。 还直接调用服务,像他们的docker IP curl: curl http://172.18.0.5:8080/api/service1/1234 […]

在Mono Docker容器中运行Grapevine REST服务器

我用Grapevine构build了一个简单的REST服务器,可以在Windows环境下运行。 现在我想运行带单声道的Docker容器中的.exe(带Grapevine.dll)。 我的Dockerfile看起来像这样: FROM mono:latest COPY . /boerse RUN output="$(curl http://169.254.169.254/latest/meta-data/public-hostname)" CMD [ "mono", "/boerse/Boerse.exe", "$output" ] 当Docker容器启动时,会出现以下错误消息: Error: System.TypeLoadException: Could not load type 'Grapevine.Interfaces.Server.HttpListener' from assembly 'Grapevine, Version=4.0.0.195, Culture=neutral, PublicKeyToken=null'. at Boerse.BoersenApplication.Main (System.String[] args) [0x0002f] in <407ced228a394aa7b9fc2fa883a239a9>:0 TypeRef ResolutionScope not yet handled (57) for .ExtendedProtectionSelector in image /boerse/Grapevine.dll Could not load signature of Grapevine.Interfaces.Server.HttpListener:get_ExtendedProtectionSelectorDelegate […]

Docker远程API在创build容器上返回500错误

我正在使用Python请求库将docker命令发送到远程服务器。 我无法创build一个新的容器。 POST命令是否需要某些参数(数据字段)? 服务器总是返回一个500错误。 我的要求是这样的。 r1 = requests.post(“ http://xxx.xxx.xx.xx:4243 / containers / create?name = pycount ”) 我尝试过使用和不使用名称,主机名,更大的数据字段(来自其他示例)。 服务器总是返回500。 谢谢!