在Python PyCharm的subprocess中运行docker

我有一个如下所示的命令:

p = subprocess.Popen(['docker', 'run', 'imagename']) 

在Python程序中。 我能够从terminal成功地执行这个,但是当我在PyCharm中运行它,我收到这个错误:

无法连接到Docker守护进程。 docker守护程序在这个主机上运行

我如何解决这个错误在Python IDE中运行?

关键是要了解什么eval "$(docker-machine env dockermachinename)"返回(其中dockermachine名称是您的docker机器名称(您可以使用“docker-machine ls”命令检查名称))。

当你运行docker-machine env dockermachinename这是你需要configuration你的shell与Docker连接时,它打印出:

 export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://999.999.99.999:999" export DOCKER_CERT_PATH="/Users/enderland/.docker/machine/machines/dockermachinename" export DOCKER_MACHINE_NAME="dockermachinename" # Run this command to configure your shell: # eval $(docker-machine env default) 

这些环境variables需要在PyCharm中。 通过将它们添加到configuration环境variables列表中,您将能够连接到Docker。

这假设您的Docker机器正在运行(如果没有,您需要执行docker-machine start dockermachinename )。