问题标签 [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 - 如何在 docker-py 中绑定卷?
我认为这在几个月前还有效。常规命令行泊坞窗:
按预期工作,但我无法让它在 docker-py 中工作:
..总是告诉我新的不存在。docker-py 应该怎么volumes-from
做?
python - docker-py:访问在 ENTRYPOINT 命令中运行的 python 脚本的输出
我无法使用 Python 中的 docker-py 模块获取在 docker 容器中运行的 Python 脚本的输出。
首先,一些背景:
我创建了一个 Dockerfile 并通过命令行docker build -t myimage /path/to/dockerfile
( Python 脚本作为ENTRYPOINT
Dockerfile 中的命令执行:
包含脚本的目录在运行时被添加(绑定)到容器中。
当我通过通常的 docker 命令行(在 Ubuntu 中)执行此操作时,使用:
我将预期的 Python 脚本输出打印到标准输出(显示在终端中 - 脚本以print result
命令结尾)。这正是我在 Python 中执行此操作时想要获得的输出。
但是,当尝试使用 docker-py 包从 Python 中执行此操作时,我无法查看结果 - 该logs
方法返回一个空字符串。这是我正在使用的 Python 代码:
我只是得到一个空字符串。我尝试将脚本的输出通过管道传输到echo
命令cat
中,ENTRYPOINT
但无济于事。如何在ENTRYPOINT
命令中获取 script.py run 的输出作为该容器日志的一部分,以便我可以使用 docker-py Python 方法读取它?我也尝试了 docker-pyattach
方法(我认为logs
这只是一个包装版本),结果相同。
我考虑过将脚本输出写入文件而不是标准输出,但不清楚我将如何使用 docker-py 方法访问和读取该文件。
任何见解或建议将不胜感激!
python - 捕获在 docker 容器内运行的 python 脚本的输出
这里的目的是使用 docker 容器作为安全沙箱来运行不受信任的 python 脚本,但要在 python 中使用 docker-py 模块执行此操作,并且能够捕获该脚本的输出。
我在 docker 容器中运行 python 脚本 foo.py(它ENTRYPOINT
在我的 Dockerfile 中设置为命令,因此在容器运行后立即执行)并且无法捕获该脚本的输出。当我通过普通 CLI 运行容器时,使用
(host_dirpath
是包含 foo.py 的目录)我将 foo.py 的预期输出打印到标准输出,这只是一个键值对字典。但是,我正在尝试使用 docker-py 模块从 python 中执行此操作,并且不知何故,该logs
方法没有捕获脚本输出。这是我正在使用的python代码:
这只会导致“Docker 日志:” - 日志中没有捕获任何内容,无论是 stdout 还是 stderr (我尝试在 foo.py 中引发异常来测试这一点)。
我追求的结果是由 foo.py 计算的,目前只是用 pythonprint
语句打印到标准输出。如何将其包含在 docker 容器日志中,以便我可以从 python 中读取它?或者以其他方式从容器外部捕获此输出?
任何帮助将不胜感激。提前致谢!
编辑:
docker-py 仍然没有运气,但是在使用 subprocess.Popen 使用普通 CLI 运行容器时它运行良好 - 执行此操作时,输出确实被 stdout 正确抓取。
docker - Ansible 错误:KeyError: 'ApiVersion'
我正在使用 Ansible 1.7 (devel) 和 Docker 0.9.1 build 3600720,但我遇到了这个错误:
有任何想法吗?是否有任何有效的版本组合?我需要 Ansible 1.7,因为为 docker 容器添加了“运行”状态。
python - 如何使用 docker-py(官方 docker 客户端)启动 bash shell?
我正在尝试使用 docker-py 运行 docker 容器并将我放入该容器中的 bash shell 中。我尽可能运行容器(我可以看到它docker ps
,并且可以使用本机 docker 客户端很好地附加到它),但是当我attach()
从官方 Python 库中使用时,它只会给我一个空字符串作为响应。如何附加到我的 bash shell?
docker - Docker 远程 api 从 Docker 集线器私有注册表中提取
我正在尝试使用 docker 远程 API从托管在 Docker 中心https://registry.hub.docker.com/u/myname/myapp中的私有存储库中提取 docker 映像。该文档不清楚如何在这样的 POST 请求中指定身份验证凭据
这也没有详细说明 authconfig 是如何生成的。
这讨论了发送具有如下结构的 base 64 编码 json:
但没有解释什么是 index_url 和 serveraddress。他们是
上面的配置给了我 404,可能注册表中心私有 repo 没有被识别。
我还尝试使用 base 64 对 ~/.dockercfg 的内容进行编码
您能告诉我如何生成 base64 编码的 authconfig 对象并使上述 curl 命令正常工作吗?
提前致谢
码头工人版本
docker - Docker 中的数据容器:未填充数据
这是我的问题。
我需要从容器内的卷中读取数据。我不需要在我的 docker 文件中使用 ADD 命令将这些数据直接复制到我的容器中,而是需要从数据占位符(即保存数据的容器)中查找这些数据。
所以,我创建了这个数据容器,
docker run -d -v /var/lib/ABC --name ABC_datastore busybox true。
据我了解,这应该创建一个容器 ABC_datastore,该容器将包含我从中运行此命令的主机的目录 /var/lib/ABC 中的数据?我错了吗?
所以如果我的理解是正确的,我可以在我的主容器中使用这个容器, docker run -i -t --volumes-from ABC_datastore --name="ABC_ins" -d ABC_img
这应该用正确的值填充我的 ABC-ins 中的 /var/lib/ABC。但它没有发生。我的 ABC-ins 中的文件夹 /var/lib/ABC 是空的。
我还尝试使用 docker run -d -v /var/lib/ABC --name ABC_datastore busybox true;填充数据。tar -c /var/lib/ABC | docker run -a stdin -i --volumes-from ABC_datastore busybox tar -xC /var/lib/ABC 这里也没有运气。
任何帮助将不胜感激。我的最终目标是创建一个数据容器,该容器将包含 /var/lib/ABC 中的实际数据,这些数据可以在给定路径中的容器内使用。
docker - 使用 docker-py 获取正在运行的 docker 容器列表
我正在使用docker-py来管理我的一个应用程序的 docker 容器。我想检索所有正在运行的容器的列表,与docker ps
. 但是该containers
方法只返回一个空列表。
但是,当然,做$ docker ps
给了我这个:
我在这里错过了什么?
jenkins - 如何运行 Docker 监听特定端口以与 Jenkins 集成
我正在尝试使用Jenkins Docker plugin
. 不幸的是,我还不能在 RHEL 上运行 Docker 来监听特定端口。
我知道我必须补充:
但是在我的 RHEL 安装中找不到该/etc/init/docker.conf
文件。
那么修改哪个文件呢?