问题标签 [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.
python - 来自命令行和 python api 的 docker exec 中的管道
我尝试实现的是mysqldump
在容器中调用并将数据库转储到容器自己的目录中。
起初我尝试以下命令:
那是行不通的,所以我尝试了另一个:
这次奏效了。
但这真的很蹩脚。
然后我尝试使用 docker-py 这次工作的cmd
选项看起来像这样:
记录器事件如下:
我的问题:
有没有更优雅的方式来归档我的目标?
docker - 使用 Ansible docker_image 构建 Docker
我正在尝试使用 Ansible 的docker_image模块在机器上构建一堆docker。
我构建了 1 个“基础”docker 镜像,它在所有后续 docker 镜像中用作 FROM 镜像。这在手动发出构建命令时有效:
但是,当我尝试对 Ansible 模块执行相同操作时,第二个图像(以及使用“基本”图像的所有后续图像)失败并出现以下错误:
我的剧本中的条目是:
当它失败时,机器上存在“基本”图像,我可以通过检查来验证它docker images
。后续图像(在本例中为 postgres)在进行手动构建时也不会失败。
来自 Dockerfiles 的相关摘录:
基础 Dockerfile:
Postgres Docker 文件:
因此 Ansible 努力使用另一个图像作为基础图像来构建图像。我确定问题不在于 Dockerfile,因为我可以手动构建图像。我只是想用 Ansible 自动化构建,这给了我问题。
有什么建议吗?
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:
有什么建议么?
python-3.x - docker py 的问题,在图像构建时读取 tar 时出现 UnicodeDecodeError
我正在尝试从生成的 tar 文件制作 docker 映像,问题是 wats 生成的 tar 文件是有效的,并且代码之前有效。
我得到什么:
问题出在 \x89PNG ,但为什么会这样呢?漏洞 ?
shell - Ansible Shell 无法拉取 Docker 映像
我遇到了使用 Ansible 的 Docker 模块从私有 DockerHub 存储库中提取 Docker 映像的问题,因此为了检查代码的完整性,我决定先尝试使用 shell 提取有问题的映像。这也失败了。这里发生了什么?如果我通过 SSH 连接到盒子上,我可以在 shell 中运行完全相同的命令并且它可以工作,拉取正确的图像。
孤立的示例播放:
正在输出的错误是:
注意:我已经清理了我的<org>
,<image>
但请放心,他们在剧本中的图像标识符和错误日志完全匹配我可以通过 ssh 在 shell 中成功运行的图像:
我知道各种 GitHub 问题(比如我在使用 Docker 模块时遇到的问题)、补丁等与docker-py
库相关的问题,但这里的问题是我只是在使用 Ansibleshell
模块。我错过了什么?
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
而是)......
我仍然得到相同的文档字符串!
为什么在这里执行了错误的代码,我怎样才能找到它的位置以便解决问题?
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 我只是无法弄清楚如何将端口映射到不同的端口号。我错过了什么?
python - 如何检测 docker-py client.build() 何时失败
我正在使用 docker-py 构建和运行 Docker 映像。
通过阅读文档,我不清楚我应该如何检测构建图像是否存在错误。 build()
出现错误时不会引发异常。这让我觉得我必须调查回来的回应。
确定 docker-py 的 client.build() 是否失败的最佳方法是什么?
dockerpy - 停止 docker-py 事件流迭代
我如何要求docker-py
事件停止events
流迭代?例如,我想停下来观看码头工人的活动。
client.events()
返回生成器在这里构建。
python - cassandra 和 docker-py 的连接被拒绝错误
所以基本上我正在尝试运行一个 cassandra docker 实例(2.1)并按照https://hub.docker.com/_/cassandra/的说明运行 cqlsh 命令。
或者
手动一切正常,但在尝试使用 docker-py 自动执行此流程时,我遇到了运行 cqlsh shell 的问题。我无法从我的链接容器中执行 cqlsh shell 并针对我正在运行的 cassandra docker 容器运行命令。下面,我提供了我尝试让 cqlsh shell 工作的各种命令组合的代码和响应。非常感谢任何提示/建议/答案。
这是我正在使用的代码。
这是我得到的输出