问题标签 [dockerpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
20320 浏览

python - 来自命令行和 python api 的 docker exec 中的管道

我尝试实现的是mysqldump在容器中调用并将数据库转储到容器自己的目录中。

起初我尝试以下命令:

那是行不通的,所以我尝试了另一个:

这次奏效了。

但这真的很蹩脚。

然后我尝试使用 docker-py 这次工作的cmd选项看起来像这样:

记录器事件如下:

我的问题:

有没有更优雅的方式来归档我的目标?

0 投票
1 回答
2670 浏览

docker - 使用 Ansible docker_image 构建 Docker

我正在尝试使用 Ansible 的docker_image模块在机器上构建一堆docker。

我构建了 1 个“基础”docker 镜像,它在所有后续 docker 镜像中用作 FROM 镜像。这在手动发出构建命令时有效:

但是,当我尝试对 Ansible 模块执行相同操作时,第二个图像(以及使用“基本”图像的所有后续图像)失败并出现以下错误:

我的剧本中的条目是:

当它失败时,机器上存在“基本”图像,我可以通过检查来验证它docker images。后续图像(在本例中为 postgres)在进行手动构建时也不会失败。

来自 Dockerfiles 的相关摘录:

基础 Dockerfile:

Postgres Docker 文件:

因此 Ansible 努力使用另一个图像作为基础图像来构建图像。我确定问题不在于 Dockerfile,因为我可以手动构建图像。我只是想用 Ansible 自动化构建,这给了我问题。

有什么建议吗?

0 投票
0 回答
628 浏览

python - Docker ELK 堆栈与 docker-py

我正在尝试在运行 Ubuntu 14.04 的 VirtualBox VM 上使用 docker-py 部署 ELK 堆栈。目前正在运行 docker 1.7 版,并且正在使用 Docker Hub 库官方容器用于 elasticsearch、kibana 和 logstash。

我编写了一个简短的脚本来拉取、配置和启动容器。elasticsearch 和 kibana 容器运行成功,但 logstash 容器在大约 23 秒后退出。

我的logstash.start.py:

有什么建议么?

0 投票
1 回答
304 浏览

python-3.x - docker py 的问题,在图像构建时读取 tar 时出现 UnicodeDecodeError

我正在尝试从生成的 tar 文件制作 docker 映像,问题是 wats 生成的 tar 文件是有效的,并且代码之前有效。

我得到什么:

问题出在 \x89PNG ,但为什么会这样呢?漏洞 ?

0 投票
2 回答
4193 浏览

shell - Ansible Shell 无法拉取 Docker 映像

我遇到了使用 Ansible 的 Docker 模块从私有 DockerHub 存储库中提取 Docker 映像的问题,因此为了检查代码的完整性,我决定先尝试使用 shell 提取有问题的映像。这也失败了。这里发生了什么?如果我通过 SSH 连接到盒子上,我可以在 shell 中运行完全相同的命令并且它可以工作,拉取正确的图像。

孤立的示例播放:

正在输出的错误是:

注意:我已经清理了我的<org><image>但请放心,他们在剧本中的图像标识符和错误日志完全匹配我可以通过 ssh 在 shell 中成功运行的图像:

我知道各种 GitHub 问题(比如我在使用 Docker 模块时遇到的问题)、补丁等与docker-py库相关的问题,但这里的问题是我只是在使用 Ansibleshell模块。我错过了什么?

0 投票
1 回答
240 浏览

python - 为什么 inspect.getfile 会给我一个不存在的文件?

或者,Saltstack + docker-pyAttributeError: 'RecentlyUsedContainer' object has no attribute 'lock'

我一直在研究这个问题无济于事。我正在尝试使用 SaltStack 来管理我的 docker 图像/容器,但遇到了这个问题

最初我使用的是盐状态docker.running,但显示为命令的状态不存在。当我将状态更改为 时docker.running,我得到了我在 GitHub 问题上发布的回溯:

在谷歌搜索了一下,一无所获后,我继续阅读源代码

在阅读unixconn.py并意识到它RecentlyUsedContainer来自 urllib3 之后,我去追踪它的来源,发现有一个_lock属性被更改为lock前一段时间。那似乎很奇怪。

我仔细查看了导入,并意识到它unixconn.py试图使用请求的内置 urllib3,然后回退到独立的 urllib3。所以我检查了请求 urllib3 并发现它确实有,确实有_lock -> lock变化。但它比的请求版本更新。所以我升级了请求并再次尝试。仍然没有骰子 - 相同AttributeError

现在事情开始变得奇怪了。

为了将信息返回给我的 salt master,我开始在我的 salt minion 上使用 docker-py 和 urllib3 代码。起初我提出了例外,urllib3.__file__以确保我使用的是正确的文件。但有时它会返回的文件名位于不存在的文件和文件夹中。通常它是显示/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/_collections.pyc的,但是当我删除那个文件时认为缓存的 .pyc 可能会导致问题,它仍然会说是__file__,即使它不存在。

然后我发现了inspect.getfile。我得到了同样奇怪的行为——我可以删除 .pyc 文件,但inspect.getfile(self.pools)会返回不存在的文件。

为了让生活更美好,我添加了

在结束时RecentlyUsedContainer.__init__。然而,该异常并未引发

而且我刚刚确认有些事情实际上在骗我,因为尽管发生了变化unixconn.py

它返回/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/_collections.pyc,当我去编辑那个 .pyc 并修改RecentlyUsedContainer's 文档字符串时,我得到了原始文档字符串

最后,当我编辑/usr/lib/python2.7/dist-packages/urllib3/_collections.pyc和更改它的文档字符串时,(或相同的路径,_collections.py而是)......

我仍然得到相同的文档字符串!

为什么在这里执行了错误的代码,我怎样才能找到它的位置以便解决问题?

0 投票
2 回答
3966 浏览

python - 如何使用 docker-py 绑定端口

我尝试使用 docker-py(版本 1.3.1)启动一个 docker 容器。我想将容器内部端口映射到不同的端口,但无法正确公开它们。

我这样做是这样的:

在手头的情况下,输出如下:

docker ps 告诉我:

但是,如果我给它映射 3000 -> 3000、2424 -> 2424 和 2480 -> 2480 它给出

关键是从命令行我可以使用正确的端口映射启动容器。那是

docker run -d -p 3001:3000 -p 2425:2424 -p 2481:2480 -v /dbfiles/test:/opt/db localhost:5000/test:test /initdb.sh

给出了想要的结果。

但是使用 docker-py 我只是无法弄清楚如何将端口映射到不同的端口号。我错过了什么?

0 投票
3 回答
1150 浏览

python - 如何检测 docker-py client.build() 何时失败

我正在使用 docker-py 构建和运行 Docker 映像。

通过阅读文档,我不清楚我应该如何检测构建图像是否存在错误。 build()出现错误时不会引发异常。这让我觉得我必须调查回来的回应。

确定 docker-py 的 client.build() 是否失败的最佳方法是什么?

0 投票
2 回答
1010 浏览

dockerpy - 停止 docker-py 事件流迭代

我如何要求docker-py事件停止events流迭代?例如,我想停下来观看码头工人的活动。

client.events()返回生成器在这里构建。

0 投票
1 回答
1335 浏览

python - cassandra 和 docker-py 的连接被拒绝错误

所以基本上我正在尝试运行一个 cassandra docker 实例(2.1)并按照https://hub.docker.com/_/cassandra/的说明运行 cqlsh 命令。

或者

手动一切正常,但在尝试使用 docker-py 自动执行此流程时,我遇到了运行 cqlsh shell 的问题。我无法从我的链接容器中执行 cqlsh shell 并针对我正在运行的 cassandra docker 容器运行命令。下面,我提供了我尝试让 cqlsh shell 工作的各种命令组合的代码和响应。非常感谢任何提示/建议/答案。

这是我正在使用的代码。

这是我得到的输出

猫 /etc/hosts/

['cqlsh',"cassandra"]

['cqlsh', '$CASSANDRA_PORT_9042_TCP_ADDR']

['cqlsh','172.17.0.4','9042']

['cqlsh','172.17.0.4','9160']

['cqlsh','172.17.0.4', '7199']