Tag: api

terraform provider + docker registry v2 = 404

我试图启动一些容器使用terraform,从我自己的registry中拉动那些,但是不能通过ping pingdocker服务器validation,在那里我得到一个fugly: * Error pinging Docker server: API error (404): 404 page not found错误。 为了更好地解释这一点,我开始了docker文档指出的registry; 之后推了一个图像,并尝试使用terraform来应用非常基本的.tfconfiguration: docker.tf # set provider to local registry provider "docker" { host = "http://docker.localhost.com:5000/v2/ubuntu" } # create container resource "docker_container" "test" { image = "latest" name = "test" } 我可以使用像http://docker.localhost.com:5000/v2/ubuntu/_manifests/latest这样的URL来抽取清单和图像,但没有太多的问题,但是当运行terraform的东西南下,我得到的只是一个错误。 检查registry日志我运行terraform时看到这个: `172.*.*.1 – – [04/Apr/2016:18:30:28 +0000] "GET /v2/ubuntu/_ping HTTP/1.1" 404 […]

在使用docker安装时,'Kubectl'抛出错误'未能协商api版本'

我使用https://docs.docker.com/engine/installation/linux/ubuntulinux/中的指南在机器中安装了docker,并且我还在本地机器上安装了Kubernetes,方法是使用http://kubernetes.io/docs/getting-开始指南/docker/ 。 但是一旦我运行“kubectl get nodes”,我得到错误错误:未能协商api版本; 服务器支持:map [],客户端支持:map [v1:{} metrics / v1alpha1:{} extensions / v1beta1:{} componentconfig / v1alpha1:{} batch / v1:{} autoscaling / v1:{} authorization.k8s。 io / v1beta1:{}] 。 我的机器上的docker版本如下。 客户: 版本:1.11.1 API版本:1.23 Go版本:go1.5.4 Git commit:5604cbe build于:2016年4月26日23:30:23 OS / Arch:linux / amd64 服务器: 版本:1.11.1 API版本:1.23 Go版本:go1.5.4 Git commit:5604cbe build于:2016年4月26日23:30:23 OS / Arch:linux / amd64

APIdevise – 分裂成不同的子域(微服务)

我们的应用程序基于API的第一个架构,目前基于单个域/服务: api.todos.com API的消费者是: 我们的networking前端 我们的移动应用程序 其他业务/公共 我们将为同一个应用程序构build用不同语言编写的新的微服务 。 例如,我们可能开发API服务: 统计 博客/内容 RSS订阅 search 我的问题是围绕处理域。 将每个服务分割成不同的子域是最好的 api.todos.com stats.todos.com content.todos.com rss.todos.com search.todos.com 还是有一个单一的统一的API域,我们做HTTP(第7层)路由到达我们的端点更好。 例如 api.todos.com/todos api.todos.com/stats api.todos.com/content api.todos.com/rss api.todos.com/search 不知道哪一个公共API更可取? 拥有多个子域会更容易,而不必处理中间路由层/代理。

使用API​​(2.5.1)将容器上传到registryV2

嗨,我试图上传一个docker容器到私人dockerregistry使用API​​。 使用docker命令一切似乎工作得很好: docker pull ubuntu:16.04 docker tag ubuntu:16.04 <PRIVATE-REGISTRY-IP>:5000/ubuntu/16.04 docker push <PRIVATE-REGISTRY-IP>:5000/ubuntu/16.04 我试图使用API​​上传相同的图像,我做了什么: 使用docker save ubuntu:16.04 -o ubuntu.tar导出容器docker save ubuntu:16.04 -o ubuntu.tar 解压容器文件tar xf ubuntu.tar 用curl上传所有图层 上传清单与curl 好吧,阅读文档 ,图层必须分别与他们使用sha256sum <LAYER-FILE>获得的摘要PUT分开,完成后,清单应该也是PUT到registry curl电话细节:) curl -XPOST -H 'accept: application/json' http://<PRIVATE-REGISTRY-IP>:5000/v2/ubuntu/blobs/uploads/ response headers: {"Docker-Distribution-Api-Version":["registry/2.0"],"Docker-Upload-Uuid":["318d5752-b10b-49da-9ebf-5891b679a805"],"X-Content-Type-Options":["nosniff"],"Range":["0-0"],"Content-Length":["0"],"Date":["Wed, 23 Nov 2016 16:05:53 GMT"],"Content-Type":["text/plain; charset\u003dutf-8"],"Location":["http://<PRIVATE-REGISTRY-IP>:5000/v2/ubuntu/blobs/uploads/318d5752-b10b-49da-9ebf-5891b679a805?_state\u003dv2nk-ATsPGQKJatyjUQTSJwl2BlQywrqeCkVTzQj0uh7Ik5hbWUiOiJ0ZXN0MDEiLCJVVUlEIjoiMzE4ZDU3NTItYjEwYi00OWRhLTllYmYtNTg5MWI2NzlhODA1IiwiT2Zmc2V0IjowLCJTdGFydGVkQXQiOiIyMDE2LTExLTIzVDE2OjA1OjUzLjE1Njk5NzUxM1oifQ%3D%3D"]} DIGEST=$(sha256sum /home/user/container/ubuntu/3e1722599d1d5331b610200b6b41f895759e312ff1f14e009bee2f52f962b69f/layer.tar) curl -XPUT -H 'accept: application/json' -d @/home/user/container/ubuntu/3e1722599d1d5331b610200b6b41f895759e312ff1f14e009bee2f52f962b69f/layer.tar […]

exec();(docker java api version 0.10.4)无法反序列化int的实例超出VALUE_FALSE标记,而readngdocker信息client.infoCmd()

通过client.infoCmd()。exec()读取信息时出现以下错误。 与com.github.docker-java,docker-java,版本0.10.4。 基本上我想检查我的java程序中的docker信息,我使用的是docker java api版本0.10.4,我的docker版本是1.9.0。 请帮助我可以得到docker信息的方式链接阅读更多关于https://github.com/docker-java/docker-java () Apr 10, 2017 11:22:59 PM org.glassfish.jersey.filter.LoggingFilter log INFO: 2 * Client response received on thread main 2 < 200 2 < Content-Length: 1149 2 < Content-Type: application/json 2 < Date: Mon, 10 Apr 2017 17:54:20 GMT 2 < Server: Docker/1.9.0 (linux) {"ID":"U2BQ:6IX2:ZB2G:37GA:43EA:7R3Y:36BG:2TEU:BVJE:VIGK:NMVC:GD6P","Containers":5,"Images":17,"Driver":"aufs","DriverStatus":[["Root Dir","/var/lib/docker/aufs"],["Backing Filesystem","extfs"],["Dirs","27"],["Dirperm1 Supported","false"]],"MemoryLimit":true,"SwapLimit":false,"CpuCfsPeriod":true,"CpuCfsQuota":true,"IPv4Forwarding":true,"BridgeNfIptables":true,"BridgeNfIp6tables":true,"Debug":false,"NFd":15,"OomKillDisable":true,"NGoroutines":22,"SystemTime":"2017-04-10T23:24:20.757276747+05:30","ExecutionDriver":"native-0.2","LoggingDriver":"json-file","NEventsListener":0,"KernelVersion":"3.13.0-24-generic","OperatingSystem":"Ubuntu 14.04.5 LTS","IndexServerAddress":"https://index.docker.io/v1/","RegistryConfig":{"InsecureRegistryCIDRs":["127.0.0.0/8"],"IndexConfigs":{"docker.io":{"Name":"docker.io","Mirrors":null,"Secure":true,"Official":true}},"Mirrors":null},"InitSha1":"","InitPath":"/usr/bin/docker","NCPU":2,"MemTotal":4108566528,"DockerRootDir":"/var/lib/docker","HttpProxy":"","HttpsProxy":"","NoProxy":"","Name":"Suchrita","Labels":null,"ExperimentalBuild":false,"ServerVersion":"1.9.0","ClusterStore":"","ClusterAdvertise":""} Exception […]

Docker put_archive错误docker.errors.NotFound:

文件找不到Docker put_archive的错误。 我正在使用Docker的Python API。 Docker版本1.12.5,版本7392c3b docker.errors.NotFound: 404 Client Error: Not Found ("lstat /var/lib/docker/aufs/mnt/39d58e00519ba4171815ee4444f3c43d2c6a7e285102747398f6788e39ee0e87/var/lib/neo4j/certificates: no such file or directory") 我无法将文件复制到创build的泊坞窗容器。 con = cli.create_container(…) cli.put_archive(…) cli.start(con['Id']) 如果我改变操作的顺序,没有错误,文件被完全复制到我想要的地方。 所以我知道我的代码正在工作,正在做我想做的事情。 但在启动之前将configuration文件复制到容器是很重要的。 在启动之后复制文件将导致容器以默认configuration启动,而不是在启动容器之前需要复制到的自定义configuration。 Docker声称这个问题已经结束,但仍然影响我的应用程序。 这工作; 相同代码不同的执行顺序。 con = cli.create_container(…) cli.start(con['Id']) cli.put_archive(…)

通过docker API将parameter passing给容器

我想通过使用json文件的docker API创build并启动一个带有一些参数(对CMD)的docker容器。 curl -XPOST –unix-socket /var/run/docker.sock -d @minio.json -H 'Content-Type: application/json' http://localhost/containers/create?name=minio curl -XPOST –unix-socket /var/run/docker.sock -H 'Content-Type: application/json' http://localhost/containers/minio/start 我试图把他们放在JSON的顶部和HostConfig“子条目” "Args": "server –address 192.168.150.3:80 /export", 但是当我检查的论据不存在。 在文档中只有当您检查容器并查看参数时才有示例。 有没有一种方法可以在json文件中传递Args,或者当您使用curl和有效载荷启动容器(不包括“docker run”)? 更新: 解决方法是在数组中使用双引号列出所有参数。 "Cmd": [ "server" ,"–address", "192.168.100.8:8888", "/export" ],

获取stream错误:streamID 1; 在容器中使用Golang中的GooglesearchAPI时的PROTOCOL_ERROR

当在docker群服务中使用Go程序时,我得到一个400状态和一个错误消息stream ID 1; PROTOCOL_ERROR 当我调用一个client.Get(url)时, stream ID 1; PROTOCOL_ERROR我得到一个200和结果,当我go run *.go 。 我在Mozilla的容器中使用了“CA根证书的包”。 任何帮助赞赏。 我的代码如下。 client := &http.Client{Timeout: 30 * time.Second, Transport: &http.Transport{ DisableCompression: true, DisableKeepAlives: true, }} r, err := client.Get(url) if err != nil { return err } defer r.Body.Close() bodyBytes, err := ioutil.ReadAll(r.Body) if err != nil { fmt.Println(url, err) // The […]

如何在远程Ubuntu服务器上部署Docker容器?

我在Docker容器中实现了一个API,我想将这个容器部署到远程的ubuntu服务器。 我怎样才能做到这一点? 我的API使用了许多资源,我使用MLDB框架来实现它。 我想在这个远程Ubuntu服务器上部署包含API的容器。 到目前为止,我已经find了许多指南,在AWS和DigitalOcean上部署API,但由于我已经有了一个远程的Ubuntu服务器,我不需要这些服务器吗? 那么我怎么可以部署我的容器,让其他人能够testing我的API呢? 如果有更好的方法来部署我的API(希望免费或以便宜的成本),那么请让我知道。 提前致谢。

为什么Docker“血统”API命令不起作用?

DockerregistryAPI文档( 此处 )指出您可以执行: https://index.docker.io/v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry : https://index.docker.io/v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry 然而,这个(我已经尝试了几个图像ID)只产生了404。为什么?