问题标签 [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 回答
230 浏览

python - python docker客户端没有以正确的方式执行mysql命令

我在这样的代码中使用MySQL docker 映像和 docker python 客户端

基本上我只想*.sql在容器中执行挂载的文件,但除了mysql --help输出er.output和退出代码之外什么都没有收到1。运行docker exec -it local-mysql bash和手动执行mysql -h localhost < /data/init.sql完美。提供tty=True参数也无济于事。

这是我init.sql文件的内容

我怀疑我的命令有问题(不是以 docker 客户端接受的方式形成的?)。这是我的环境以获取更多详细信息: Python 2.7.12, Docker version 17.12.1-ce, build 7390fc6, client docker==3.1.1, mysql inside container mysql Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using EditLine wrapper

这里可能有什么问题?

0 投票
1 回答
1172 浏览

docker - 如何使用 docker-py 将文件“挂载”到 docker 容器中的目录中?

我需要使用docker-py. 目录不得被覆盖意味着mount没有选项。移动目录以允许volume在主机和容器之间共享也不是选项。

0 投票
1 回答
2742 浏览

docker - docker内部的Docker:卷已安装,但为空

我正在运行一个docker容器,里面安装了docker:

这会运行一个 python 脚本,该脚本会在其中创建一个data文件夹/src并填充它。打印时os.listdir('/src/data'),我得到一个文件列表。

然后我从这个容器中运行一个容器,安装data文件夹,使用docker-py.

它打印:

这意味着data已安装,但为空。我究竟做错了什么 ?

0 投票
1 回答
1904 浏览

python - 在安装 docker 之前删除 setup.py 中的 docker-py

我有一个依赖于 docker-py 的包,我想将依赖项升级到 docker。不幸的是,这两个软件包不能很好地相互配合。

一个安全的方法是首先卸载 docker-py,然后安装我的包,它将安装 docker(我已经将要求从 docker-py 更改为 docker)。

当我升级我的包(通过 pip 或任何其他方式)而不弄乱 python 环境时,有没有办法在 setup.py 中发生这种情况?

我想到的第一件事是在 setup.py 中检查 docker-py 是否已经安装并pip uninstall像这样运行:

然后安装程序将安装新的依赖项,一切都会正常工作。

这安全吗?有更好的选择吗?

0 投票
1 回答
1104 浏览

python-3.x - 通过 docker-py 从 ECR 中提取图像

我有一个脚本,它检索 ECR 的登录,使用登录凭据(reauth 设置为 True)对 DockerClient 实例进行身份验证,然后尝试提取指定的容器映像。

当在我的本地机器上运行与 EC2 实例上的 docker 守护进程交互时,该代码似乎运行良好,但是当从 EC2 实例运行时,我不断得到

404 Client Error: Not Found ("repository XXXXXXXX.dkr.ecr.eu-west-2.amazonaws.com/autohld-runner not found: does not exist or no pull access")

相同的存储库用于在 EC2 实例上本地和远程执行代码。我尝试在 ECR 中设置对图像的访问权限,以允许所有人和我的 AWS ID 都可以拉取。我还授予分配给 EC2 实例完全管理员访问权限的角色。都没有喜悦。

如果我通过命令行使用完全相同的 repo URI(从错误中复制)在 EC2 实例上执行相同的任务,则它可以正常工作。

我在 docker-py 中缺少什么吗?

get_repo返回错误消息中报告的完整 URI,Container 元素的名称为“autohld-runner”

谢谢

0 投票
0 回答
637 浏览

python - 使用 Python 3 的 DockerHub API 身份验证

我正在使用 Python(3.6) 开发一个项目,在该项目中我需要实现 Docker Hub API 以在用户的​​ docker hub 帐户上创建一个存储库并推送他的 docker 映像。

真实场景:用户将提供他的源代码以及 Dockerfile、他的用户名和 docker cloud 的 apikey,然后我必须在他的帐户上创建一个存储库并为他的源代码构建一个 Docker 映像并推送到他的 docker hub 帐户。

这是我尝试过的:

如您所见,目前我正在将图像推送到我自己的默认/存储库,但我想在用户帐户上创建一个存储库,然后将图像推送到他自己的帐户。而且,我可以使用apikey而不是passwordinlogin()方法吗?

我怎样才能做到这一点?

请帮帮我!

谢谢你,阿卜杜勒

0 投票
1 回答
152 浏览

gitlab-ci - 如何在 gitlab-ci docker 容器中使用 docker-py 获取 docker 客户端?

在我的本地开发机器上,我使用docker.from_env(version=auto)( docker-py ) 来获取一个没有任何问题的 docker 客户端。如果我在gitlab-cidocker 容器内(或gitlab-runner exec docker ...在本地调试期间)运行的作业中运行相同的语句来获取 docker 客户端,我会得到一个DockerException: Error while fetching server API version: ('Connection aborted.', error(2, 'No such file or directory')). 如何在 docker 容器内运行docker-py的作业中获取 docker 客户端?gitlab-ci

0 投票
1 回答
646 浏览

python - 我尝试使用 exec_run 执行到容器中但不起作用

我尝试在一个容器中执行 4 个命令(它有一个 mysql 数据库),但是如果我在另一个终端工作中执行它,但是如果创建一个容器然后执行命令,它就不起作用。我有这段代码:这段代码创建了容器,但不执行命令 1、2、3 和 4。

但是,如果我稍后执行命令(在另一个终端中),一旦创建了容器,就可以了。我需要一起创建和执行命令。

谢谢。

0 投票
1 回答
2531 浏览

python - 如何使用 Python 在 docker 容器中获取主机 ip?

上下文:我实现了docker-py用于创建 docker 网络和运行 docker 容器的测试。用于执行测试的测试运行器是pytest. 测试设置取决于 Python(我的开发机器上的 Python 包)、我的开发机器 docker daemon 和我的开发机器静态 IP 地址。在我的开发机器运行时上下文中,测试运行得很好(通过简单地调用 test runner pytest)。现在我想将测试迁移到gitlab-ci. gitlab-ci在 docker 容器中运行作业,该容器通过/var/run/docker.sockmount 访问 CI 服务器 docker 守护进程。用于运行作业的 docker 容器的 IP 地址gitlab-ci不像我的开发机器上下文中那样是静态的。但是为了在测试中创建 docker 网络,我需要 ip 地址。

问题:如何获取使用 Python 执行测试的 docker 容器的适当 IP 地址?

0 投票
1 回答
442 浏览

python-3.x - Running Docker container from Python3 with docker-py with command line arguments

I'm trying to start/run a docker container from a python3 script with the docker-py library. Here's the code.

The python script is on the host, not in the container, so when I run the script it cannot find the target grib_file. The error message is:

The python script is located in /var/www/mywebsite/api/data/grib and this is also where the *.grib file is located.

The command string is similar to the example given in the grib2json github project except I am using the --output to write the json to file.

For clarification, the *.grib files that should be read and process to json are in the same directory as the python script.

I think the disconnect is the docker container is looking internally for the files instead of on the host file system.

How do I make that connection?

Many thanks for any suggestions you may have. Bryan