Tag: docker工api

从GitHub仓库build立Docker镜像

我正在尝试使用docker api python客户端从GitHub存储库构builddocker镜像。 以下是我所尝试的: 从views.py if request.method == 'POST': post_data = request.POST.copy() post_data.update({'user': request.user.pk}) form = TarFromGithubForm(post_data) if form.is_valid(): deployment = gitHubModel() deployment.name = form.cleaned_data['name'] deployment.user = request.user deployment.archive = form.cleaned_data['archive'] dpath = deployment.archive print(deployment.archive) deployment.save() tag = deployment.name.lower() client = docker.from_env() client.images.build(path=dpath, tag=tag) messages.success(request, 'Your deployment from github repository has been created successfully!') return […]

GO使用Docker API时发出问题 – 无法导入“nat”

我正在尝试使用可从github.com/docker/docker/client获得的golang docker API。 到目前为止,我能够在图像生成期间预定义的端口上启动容器。 我试图在运行时使用API​​映射端口; 相当于一些东西 docker run -p 8083:8082 -d myImage:1.0.0 我试图做如下的映射端口: host_config := &container.HostConfig{ PortBindings: nat.PortMap{ "8082/tcp": []nat.PortBinding{ { HostIP: "0.0.0.0", HostPort: "8983", }, }, }, } 这里的问题是variables“nat”存在于API的供应商文件夹内。 我无法直接从go供应商文件夹中导入某些内容。 有人build议将复制连接文件夹到github文件夹中,并删除嵌套的供应商目录。 我按照build议做了,并创build了一个path如下: "github.com/docker/go-connections/nat" 现在我在编译期间得到以下错误: src\main\createcontainer1.go:53: cannot use "github.com/docker/go-connections/nat".PortSet literal (type "github.com/docker/go-connections/nat".PortSet) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value src\main\createcontainer1.go:65: cannot use "github.com/docker/go-connections/nat".PortMap literal (type "github.com/docker/go-connections/nat".PortMap) […]

Docker远程API exec:命令退出代码

我使用Docker Remote API来运行一些命令,并且我意识到,即使传递给它的命令失败,状态也是200。 例: curl -H "Content-Type: application/json" -X POST -d '{"AttachStdin":false,"AttachStdout":true,"AttachStderr":true,"Tty":true,"Cmd":["wrong"]}' http://localhost:2375/containers/console/exec 这将返回一个Id。 curl -v -H "Content-Type: application/json" -d '{"Detach":false,"Tty":false}' http://localhost:2375/exec/b64592543bc59e08de4d1d11c8a68415148a608b00aa62448284635f47eaa734/start POST / exec / b64592543bc59e08de4d1d11c8a68415148a608b00aa62448284635f47eaa734 / start HTTP / 1.1 Host:myip:2375 User-Agent:curl / 7.47.1 Accept: / Content-Type:application / json Content-Length:28 HTTP / 1.1 200 OK Content-Type:application / vnd.docker.raw-stream exec:“wrong”:在$ PATH中找不到可执行文件 状态码是200,那么还有另外一种方法来知道在exec上运行的命令是否成功了? 我目前的解决方法是通过这样的命令: bash […]

一个容器如何枚举networking上可用的主机?

用例:运行docker的haproxy容器组成。 我想让容器发现哪些主机可用以重新创buildhaproxyconfiguration并重新加载它。 我知道将有一个或多个名为server1和server2的容器可用。 从haproxy容器中,我可以查询dns的server1并接收多个IP地址。 这是唯一的方法来知道一个新的server1 cointainer何时变得可用或死亡? 我知道我可以使用docker api从一个容器中运行的docker主机套接字映射到它,但我不知道这将在群集上运行时工作。 完美的解决scheme将是一个API或命令,让我注册一个新的容器joinnetworking时调用的事件处理程序。

Docker API – 如何joinnetworking?

这是API的文档: https : //docs.docker.com/engine/api/v1.24/#containers你会看到,对于创build容器方法,标有“NetworkingConfig”的JSON部分被显示 这一节没有被描述,我不能完全弄清楚如何expression我所需要的东西,这相当于一个docker构成: services: myservice: networks: – mynetwork networks: mynetwork: external: true 我怎么能做到以上编程?

Docker API不能应用jsonfilter

根据https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-tasks ,filter只能用于获取具有特定服务名称的运行容器。 出于某种原因,我收到了所有任务的完整列表,不pipe他们的姓名或期望的状态如何。 我找不到使用Docker API的JSON请求使用curl的任何适当的例子。 我正在使用以下命令: 一个) curl -X GET -H“Content-Type:application / json”-d“{”filters“:[{”service“:”demo“,”desired-state“:”running“}]}' https:// HOSTNAME:2376 / tasks –cert〜/ .docker / cert.pem –key〜/ .docker / key.pem –cacert〜/ .docker / ca.pem 返回一切 B)试图从Docker远程API筛选器退出工作 curl https:// HOSTNAME:2376 / containers / json?all = 1&filters = {%22status%22:[%22exited%22]} –cert〜/ .docker / cert.pem –key〜/ .docker / key .pem –cacert〜/ .docker / ca.pem […]

Docker – 来自守护进程的错误响应:客户端比服务器更新

使用Docker Machine创build新机器后,出现以下错误: $ docker ps Error response from daemon: client is newer than server(client API version 1.21, server API version: 1.19) 我怎样才能解决这个问题?

如何使用docker远程API连接到现有的dockernetworking(通过dockerode)

我使用docker-compose来创build一个容器相互连接的“公园”。 这里没什么特别的,我有API /前端/后端等。有我docker-compose.yml : version: "2" services: api: build: ./deimos_api/docker ports: – "39999:80" volumes: – ./deimos_api:/root/deimos_api asset: build: ./deimos_asset/docker ports: – "8000:80" volumes: – ./deimos_asset:/root/deimos_asset depends_on: – api links: – api data-manager: build: ./deimos_data_manager/docker ports: – "3333:3333" volumes: – ./deimos_data_manager:/root/deimos_data_manager depends_on: – api links: – api backend: build: ./deimos_backend/docker ports: – "1080:80" volumes: – ./deimos_backend:/root/deimos_backend […]