Packer Docker Builder与远程docker守护进程

时间:2018-03-08 01:18:07

标签: docker ansible packer

我正在使用带有ansible的packer docker builder来创建docker image(https://www.packer.io/docs/builders/docker.html

我有一台机器(客户端),用于运行构建脚本。封隔器码头工具由此机器执行。这台机器有docker客户端。它连接到远程docker守护程序。环境变量DOCKER_HOST设置为指向远程docker主机。我能够测试连接性,并且工作正常。

现在的问题是,当我执行packer docker来构建图像时,它出错了:

   docker: Run command: docker run -v /root/.packer.d/tmp/packer-docker612435850:/packer-files -d -i -t ubuntu:latest /bin/bash
==> docker: Error running container: Docker exited with a non-zero exit status.
==> docker: Stderr: docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
==> docker: See 'docker run --help'.

似乎封隔器码头工人看着当地的守护进程。

解决方法:我重命名了docker binary并引入了一个名为“docker”的脚本,该脚本设置DOCKER_HOST并使用传入的参数调用原始的docker二进制文件。

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

Packers Docker构建器无法与远程主机一起使用,因为packer使用/packer-files卷装置与容器进行通信。这在文档中含糊地表达:

  

Docker构建器必须在安装了Docker的计算机上运行。

并在Overriding the host directory中解释。