Tag: api

PHP API在docker swarm&HAproxy上请求传出IP

我有些奇怪的东西,我无法解决。 我有一个应用程序与一个在同一个docker群集群上运行的API通信。 当从应用程序发出一个API请求时,我收到一个错误,说明IP不在可信列表中。 但是,当我进一步调查,我已经注意到,API响应不检测请求的IP地址。 起初,API服务器在我们的旧平台上,应用程序已经在群集中运行。 这工作完美。 现在API服务器正在群集上进行第一次testing,并且我有这种行为。 +———+ | HAproxy |———–+ +———+ | | | +—–+ +—–+ | API | | APP | +—–+ +—–+ 可以说有: app.domain.com api.domain.com 两者都可以通过3个IP进行访问,并通过DNS和健康检查进行加权。 当应用程序向API发出请求时,它通过FQDN(api.domain.com)发出请求,然后返回通过无效IP(不在白名单中)发出的请求,但是它声明没有IP 。 我使用这个作为docker集装箱HAproxy,工作伟大的btw! http://dockerflow.com 什么可能导致这个? 任何帮助表示赞赏,这只是没有任何意义。

正确的方式来访问相同的dockernetworking中的其他docker集装箱的URL / API端点?

目前我有3个docker集装箱(前端,后端(API),数据库)使用docker组成。 docker-compose.yml文件如下: #docker-compose.yml version: '2' services: frontend: build: ./frontend container_name: docker_frontend command: npm run start ports: – '8080:80' volumes: – ./frontend:/app environment: NODE_ENV: development backend: build: ./backend container_name: docker_backend command: rails s -b 0.0.0.0 -p 3050 ports: – '3050:3050' depends_on: – db volumes: – ./backend:/app – bundle:/usr/local/bundle – db_data:/var/lib/postgresql/data environment: RAILS_ENV: development db: image: postgres:9.6 […]

有没有办法将远程API用作泊坞窗撰写文件中的端点?

类似于portainer的文档: 它有这个select: $ docker run -d -p 9000:9000 portainer/portainer -H tcp://<REMOTE_HOST <REMOTE_PORT> http://portainer.readthedocs.io/en/stable/deployment.html 我目前正在尝试其他工具,所以我想知道是否可以在docker-compose文件中执行tcp的事情,如果可以的话,它的语法如何? 这是目前的样子 cadvisor: image: google/cadvisor:v0.24.0 command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086 ports: – "9090:8080" volumes: – /:/rootfs:ro – /var/run:/var/run:rw – /sys:/sys:ro – /var/lib/docker/:/var/lib/docker:ro links: – influxsrv:influxsrv 我想弄清楚如何合并它。 非常喜欢! 先谢谢你!

Docker API – 执行开始返回“找不到页面”

我试图通过使用cURL的Docker Engine API在正在运行的Docker容器中执行一个命令。 我正在按照API文档中的说明进行操作 。 首先我创build一个exec实例 ,作为响应,我收到创build的exec的ID。 然后,当我尝试发送一个请求来启动这个exec时,我使用这个ID,如下所示: $ curl –unix-socket /var/run/docker.sock -H "Content-Type: application/json" -x POST "http:/v1.29/exec/myExecID/start" 但是这个请求的回应是: {"message":"page not found"} 这是我的Docker版本: Client: Version: 17.05.0-ce API version: 1.29 Go version: go1.7.5 Git commit: 89658be Built: Thu May 4 22:10:54 2017 OS/Arch: linux/amd64 Server: Version: 17.05.0-ce API version: 1.29 (minimum version 1.12) Go version: go1.7.5 […]

通过Python中的Docker API设置login

我正在尝试Docker API python库,但无法获得一点成功,通过文档。实际上我试图login到使用API​​的docker。 这是我的Python代码: import docker config = os.path.join(BASE_DIR, 'IGui') + 'config.json' client = docker.APIClient.login('username', '*******', 'email@gmail.com','https://index.docker.io/v1/', config) 这是我收到的错误: AttributeError at /gui/docker/ 'str' object has no attribute '_auth_configs' Request Method: POST Request URL: http://127.0.0.1:8000/gui/docker/ Django Version: 1.11.3 Exception Type: AttributeError Exception Value: 'str' object has no attribute '_auth_configs' Exception Location: /Users/abdul/IstioVirEnv/lib/python3.6/site- packages/docker/api/daemon.py in login, line […]

在docker安装程序中,rails 5 api变得没有响应

编辑:我已经试图将所有的东西都搬出docker,并完全相同的问题仍然存在。 因此,这不是一个docker问题。 有一件事我注意到,当事情发生变化时,我得到了3个SET NAMES..和SELECT 'schema_migrations'.'version' (引用如下)。 当它工作,我只能得到他们每个人一次…那些是为什么他们会被重复3次? + – + – + – + – + – + – + – + – + – + – + – + – + – + – + – 我有一个docker-compose开发设置与以下容器: – Rails api – mysql数据库 – redis db – resque / rails worker 我有一个基于本地反应的应用程序消费这个前端。 经过几个月的使用这个安装程序没有任何问题,我突然开始出现问题…在一些请求后,API变得没有响应…有时它在rails API的启动时没有反应。 我没有看到在任何服务器/容器中的任何明确的错误。 […]

附加到从IPython笔记本运行的Docker容器

如何附加到IPython笔记本的某个容器? 我试图从低级的Docker API来做到这一点: import docker # Low-level Docker API client = docker.APIClient(base_url='unix://var/run/docker.sock') # Check running containers [(x['Names'][0], x['Id']) for x in client.containers()] >> [('/kate', u'12da3ea11995ff145c5011f9bc314c0b7885f8b0bd13668')] 然后,当我连接到容器 client.attach('12da3ea11995ff145c5011f9bc314c0b7885f8b0bd13668') 我得到一个错误: AttributeError: 'NoneType' object has no attribute '_sock'

我如何使用Docker Stack REST API?

有没有人尝试使用Docker Stack REST API来创build新的堆栈或列表堆栈? Docker版本:Client:版本:17.05.0-ce API版本:1.29 Go版本:go1.7.5 Git commit:89658be内置:Thu May 4 22:06:25 2017 OS / Arch:linux / amd64 服务器:版本:17.05.0-ce API版本:1.29(最低版本1.12)Go版本:go1.7.5 Git commit:89658be内置:Thu May 4 22:06:25 2017 OS / Arch:linux / amd64实验:false

Docker群集:REST API可以通过端口3001访问,但不能通过networking服务器访问

我有以下设置: networking:入口(Swarm)服务:web api Web服务运行在端口3000暴露的容器中,并且api运行在端口3001暴露的容器中。 我可以查询本地主机:3000或IP地址:3000(从任何其他机器),并加载Web应用程序。 此外,我可以POST本地主机:3001或IP地址:3001(从任何其他机器)的API,我会得到所需的响应。 在Web应用程序中,有一个REST端点,它允许我在/ api端点将数据POST到端口3000,该端点将该POST请求redirect到api容器上的3001。 问题是,当我发布数据到3000:/ API,curl只是挂起。 没有反应,也没有什么,我不知道该怎么做。 从文档中可以看出,同一networking中的所有容器都可以访问对方的端口,而不pipe它们是否被公开/公开。 我很困惑,为什么它不工作。 另外,我甚至没有得到一个错误,curl只是不返回一个值。 例: docker swarm init docker service create –name=web –mode global –publish 3000:3000 project/web docker service create –name=api –replicas 5 –publish 3001:3001 project/api 现在,如果我从networking上的另一台计算机运行以下命令,它工作正常: curl <IP_address>:3000 从web-app curl返回index.html:3001 / predict –data'{…}'-H“Content-Type:application / json”根据需要返回正确的数据 现在,Web应用程序具有一个端点:3000 / api / predict,它从主体获取json,然后将相同的数据发布到localhost:3001 / predict端点(位于另一个容器上)。 如果我ssh进入容器,curl请求返回连接被拒绝的错误。 我也尝试用一个复制的容器的名称或服务的名称replace“localhost”。 […]

为Google的Oauthconfiguration开发和生产秘密

我从来没有部署过实施Google OAuth协议的服务,但是我想(如果我错了,请纠正我)来区分生产和开发版本我应该有两个OAuth凭证,一个用于生产,另一个用于开发各自的callbackurl,例如。 example.com和localhost:777 。 现在我正在编码,我必须检查构build是否用于生产,并从安全的地方获取这些凭证,并从本地资源获取我的开发凭证,但是我很困惑,因为它们都具有相同的清除级别。 请有人澄清一下我的这个困惑,特别是涉及到的安全问题? 正如我所看到的,每次我提交代码时,我都应该改变Google API的开发凭证,甚至比开发环境的凭证更加简单。 我正在为使用docker部署的Android应用程序开发NodeJSrest服务。