问题标签 [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 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
。
这里可能有什么问题?
docker - 如何使用 docker-py 将文件“挂载”到 docker 容器中的目录中?
我需要使用docker-py
. 目录不得被覆盖意味着mount
没有选项。移动目录以允许volume
在主机和容器之间共享也不是选项。
docker - docker内部的Docker:卷已安装,但为空
我正在运行一个docker容器,里面安装了docker:
这会运行一个 python 脚本,该脚本会在其中创建一个data
文件夹/src
并填充它。打印时os.listdir('/src/data')
,我得到一个文件列表。
然后我从这个容器中运行一个容器,安装data
文件夹,使用docker-py
.
它打印:
这意味着data
已安装,但为空。我究竟做错了什么 ?
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
像这样运行:
然后安装程序将安装新的依赖项,一切都会正常工作。
这安全吗?有更好的选择吗?
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”
谢谢
python - 使用 Python 3 的 DockerHub API 身份验证
我正在使用 Python(3.6) 开发一个项目,在该项目中我需要实现 Docker Hub API 以在用户的 docker hub 帐户上创建一个存储库并推送他的 docker 映像。
真实场景:用户将提供他的源代码以及 Dockerfile、他的用户名和 docker cloud 的 apikey,然后我必须在他的帐户上创建一个存储库并为他的源代码构建一个 Docker 映像并推送到他的 docker hub 帐户。
这是我尝试过的:
如您所见,目前我正在将图像推送到我自己的默认/存储库,但我想在用户帐户上创建一个存储库,然后将图像推送到他自己的帐户。而且,我可以使用apikey
而不是password
inlogin()
方法吗?
我怎样才能做到这一点?
请帮帮我!
谢谢你,阿卜杜勒
gitlab-ci - 如何在 gitlab-ci docker 容器中使用 docker-py 获取 docker 客户端?
在我的本地开发机器上,我使用docker.from_env(version=auto)
( docker-py ) 来获取一个没有任何问题的 docker 客户端。如果我在gitlab-ci
docker 容器内(或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
python - 我尝试使用 exec_run 执行到容器中但不起作用
我尝试在一个容器中执行 4 个命令(它有一个 mysql 数据库),但是如果我在另一个终端工作中执行它,但是如果创建一个容器然后执行命令,它就不起作用。我有这段代码:这段代码创建了容器,但不执行命令 1、2、3 和 4。
但是,如果我稍后执行命令(在另一个终端中),一旦创建了容器,就可以了。我需要一起创建和执行命令。
谢谢。
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.sock
mount 访问 CI 服务器 docker 守护进程。用于运行作业的 docker 容器的 IP 地址gitlab-ci
不像我的开发机器上下文中那样是静态的。但是为了在测试中创建 docker 网络,我需要 ip 地址。
问题:如何获取使用 Python 执行测试的 docker 容器的适当 IP 地址?
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