来自python的Docker

请温柔一点,我是docker工人。

我试图从Python中运行一个docker容器,但由于没有设置环境variables,我遇到了一些麻烦。

例如,我运行

import os os.popen('docker-machine start default').read() os.popen('eval "$(docker-machine env default)"').read() 

这将启动机器,但不设置环境variables,所以我不能通过docker运行命令。

理想情况下,如果我不需要运行eval "$(docker-machine env default)" ,那就太好了。 我不确定为什么每次启动机器时都不能将这些设置为静态。

所以我想使用bash命令设置它们,但是Python只是返回一个空string,然后返回一个错误,如果我尝试docker run my_container

错误:

 Post http:///var/run/docker.sock/v1.20/containers/create: dial unix /var/run/docker.sock: no such file or directory. * Are you trying to connect to a TLS-enabled daemon without TLS? * Is your docker daemon up and running? 

我build议运行这两个步骤,首先在bash脚本中启动一台机器。 然后你可以有相同的bash脚本调用你的python脚本,并用docker-py访问docker

 import docker import os docker_host = os.environ['DOCKER_HOST'] client = docker.Client(docker_host) client.create(...) ...