盐:';dockerng'__虚拟\uuuuu返回False

盐:';dockerng'__虚拟\uuuuu返回False,docker,salt-stack,Docker,Salt Stack,我有Debian Jessie,我正试图用它来管理Docker容器。但当我尝试这种状态时: # file: docker_demo.sls hello-world: dockerng.image_present 然后sudo salt'*'状态。highstate失败: ---------- ID: hello-world Function: dockerng.image_present Result: False Comment: St

我有Debian Jessie,我正试图用它来管理Docker容器。但当我尝试这种状态时:

# file: docker_demo.sls

hello-world:
  dockerng.image_present
然后
sudo salt'*'状态。highstate
失败:

----------
          ID: hello-world
    Function: dockerng.image_present
      Result: False
     Comment: State 'dockerng.image_present' was not found in SLS 'docker_demo'
              Reason: 'dockerng' __virtual__ returned False
     Started: 
    Duration: 
     Changes:   

如何修复此问题,以便
dockerng.image\u present
可以拉取映像,
dockerng.running
可以运行Docker容器等?

由Salt minion执行的dockerng模块通过REST API与Docker守护进程通信(而不是使用CLI命令
Docker

错误消息
'dockerng'\uuuuuu virtual\uuuuuu返回False
有点误导,但是如果您看到源代码,它将返回
False
,因为它无法导入Pyhon模块
docker
。因此,必须安装这个Python包

Debian存储库中有两个包:
PythonDocker
Python3Docker
。但两者都与最近的
docker engine
(从APT存储库
deb安装)不兼容https://apt.dockerproject.org/repo debian jessie

因此,解决方案是卸载
python-docker
软件包(如果已安装),并使用
pip
安装最新的
docker-py

sudo apt-get install python-pip
sudo pip install docker-py
或使用此盐状态:

python-pip:
  pkg.installed

docker-py:
  pip.installed:
    - require:
      - pkg: python-pip
还是就跑

salt myminion pip.install docker-py


来自Debian Stretch的
python docker
包(现在正在测试,应该在2017年成为Debian稳定版)似乎工作正常。

不幸的是,这对我不起作用。我已经安装了
docker py==1.2.3
,但是没有安装help@VitalyIsaev但是当前版本的docker py是1.5.0:你能试试吗?你是对的。我注意到docker py的最小版本是1.4.0。这是一个很大的遗憾,因为我们正在服务器上运行
docker 1.6
,并且我们无法移动到更新的
docker py