Tag: dockerpy

如何将dockernetworking从旧的容器移动到新的容器?

我想升级一个容器的基础镜像,需要将networking从旧版本移到新版本。 所以我从旧容器收集数据,在哪里 networkingconfiguration creation_data.get('networking_config')如下所示: {'EndpointsConfig': {'opt_network_4ba465': {'IPAMConfig': {'IPv4Address': '10.49.0.2'}}}} 开始旧的容器 def pop_new_container(data, docker_client=None): container = docker_api.create_container( # todo: use config file image='docker.site.org:5000/coaxis/coaxisopt_daemon:latest', hostname=data.get('hostname'), ports=[80], host_config=docker_api.create_host_config( port_bindings={80: 80}, restart_policy={"MaximumRetryCount": 0, "Name": "always"} ), networking_config=create_network_config(data, docker_client) ) docker_api.start(container=container.get('Id')) return container 升级 开始新的容器(基于旧的一个数据)。 def upgrade_daemon_container(old_container_id): old_container_data = docker_api.inspect_container(old_container_id) creation_data = get_upgrade_data(old_container_data) new_container = docker_api.create_container( image=creation_data.get('image'), hostname=creation_data.get('hostname'), volumes=creation_data.get('volumes'), host_config=docker_api.create_host_config( […]

有什么方法可以确保您在stream模式下从docker-py日志逐行读取吗?

我正在使用https://docker-py.readthedocs.io/en/stable/并for line in container.logs(stream=True):读取行的日志for line in container.logs(stream=True):但看起来并不总是完整的一行。 有时我得到部分线路,在下一次迭代中,我得到了整个线路。 有什么方法可以确保在处理之前阅读完整一行吗?

如何使用docker-py创build服务时绑定一个端口?

我想pipe理docker服务自动化。 我必须把一个端口绑定到服务上。 但docker SDK for python中的docker service创build函数不能绑定一个端口。 https://docker-py.readthedocs.io/en/stable/services.html有没有什么方法可以解决这个问题?

Ruby on Rails在来自Python脚本的HTTP请求期间挂起

我正在用Ruby on Rails编写一个Web应用程序,用户可以在Web编辑器中编写Python代码,并在服务器上的docker环境中执行它。 我写了一个简单的python代码来创build一个docker容器: import docker import sys if __name__ == "__main__": if(len(sys.argv) == 2): token = sys.argv[1] client = docker.from_env() res = client.containers.run('openql','python3 /home/pythonwrapper.py '+token) else: print("Requires one parameter") 正如你可以看到它使用图像openql创build一个docker容器,并在里面执行一个简单的Python脚本。 如果用户在Web编辑器中按下执行button,Ruby on Rails将使用以下命令来执行此脚本: system("python","script.py","<TOKEN>")到目前为止, 。 但是,在pythonwrapper.py容器中执行pythonwrapper.py出现问题。 我正在使用python的请求库来请求用户写入的文件在docker容器中执行它们。 代码如下所示: # Request all the available assets, it does not download the content of the files. # […]

docker-py:是否可以将healthcheck命令添加到services.create?

在使用docker-py SDK 创build新服务时,是否可以指定healthcheck命令? 这个选项在docker cli中使用'–health-cmd'标志和SDK创build一个新的容器运行时可用,但是我找不到一个方法来指定服务的健康检查命令,即使使用低级别API。

用Python SDK创buildDocker容器并在其中执行命令

我正在尝试使用Docker Python SDK创build一个Docker容器,并继续执行一些命令并获得一些结果。 我发现在文档中,我可以运行容器执行一个命令,然后这个容器不见了 import docker client = docker.from_env() client.containers.run('alpine', 'echo hello world') 或创build一个容器并使其作为守护进程运行 container = client.containers.run('bfirsh/reticulate-splines', detach=True) 但我仍然不知道如何保持容器运行,并发送命令执行,这可能吗? 还是我错过了什么? 还是我误解了一些东西?

我如何强制使用Ansible的“docker_container”模块删除docker集装箱?

引入pipe理员后,我在从docker主机中移除容器时遇到问题 – https://github.com/google/cadvisor/issues/771 我有大量的Ansible(2.2.1.0)脚本,我用这些docker_container模块来安装服务容器。 很多时候这些脚本都想删除一个容器,但是由于上面提到的问题,它们都失败了。 我可以很轻易地在这些docker主机上强制执行docker container: docker rm container_name -fv 所以我期望在docker_container模块( docker_container模块文档 )中提供的force_kill选项应该能够执行相同的操作: – name: Delete docker containers docker_container: name: "container_name" force_kill: true keep_volumes: false state: absent 但脚本总是失败。 我不知道这个选项的目的是什么,如果它不能强行杀死它的话。 所有我的脚本甚至在启用force_kill后都失败了,我需要知道如何确保这个选项按预期工作。 更新:我现在明白了force_kill选项正在发送docker kill信号。 我已经更新了这个问题,以更好地反映我真正想要达到的目标。

用Docker python APIlogin

我正在尝试使用Docker Python APIlogin到Docker云: https://docker-py.readthedocs.io/en/stable/client.html#creating-a-client1 什么是url? 什么是港口? 我试图让它与cloud.docker.com一起工作,但是我对任何注册服务器都没问题,只要它是免费使用的,我可以使用它从一台计算机上传Docker映像,并在另一台计算机上运行它们。 我已经使用我自己的本地托piperegistry运行一切,但我似乎无法弄清楚如何连接到服务器。 托pipe我自己的registry比使用现有的registry服务器更容易。 我的代码看起来像这样,但我不确定args。*参数应该是什么: client = docker.DockerClient(base_url = args.docker_registry)client.login(username = args.docker_user,password = args.docker_password) 我不确定base_url需要什么才能login,并且错误消息根本没有帮助。 你能给我一个有用的例子吗?

运行docker容器的Python脚本

我想编写一个运行docker容器的python脚本,然后显示特定容器的日志,我使用了一些正在工作的函数,并为我启动或停止容器。 有人可以帮我显示日志的容器? 我试图使用container.logs()函数,但它不适合我,我也试图学习docker-py库! 我不太了解python,任何帮助将不胜感激! #!/usr/bin/python import docker c = docker.Client(base_url='unix://var/run/docker.sock',version='1.12',timeout=10) ctr = c.create_container('ubuntu:16.04') c.start(ctr)

Saltstack docker.login返回API错误:500服务器错误?

我在https://hub.docker.com创build了一个私有存储库,dockerlogin工作正常。 我正在尝试通过saltstack并使用此链接login。 salt '*' docker.login <url> <username> <password> <email> salt '*' docker.login 'https://registry.hub.docker.com/v1/' 'username' 'password' 'XxXX.xxxx@xxxx.XXX' 我得到这个错误 The minion function caused an exception: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/salt/minion.py", line 797, in _thread_return return_data = func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/salt/modules/dockerio.py", line 1167, in login return client.login(url, username, password, email) File "/usr/lib/python2.7/site-packages/docker/client.py", line 615, in login […]