docker容器通过ansible master在节点中创建

时间:2017-09-18 16:49:29

标签: docker ansible

我在AWS中有2个redhat实例。一个实例是Ansible master,另一个是节点,它们都有docker。现在在ansible master我有一个名为first的文件夹,并且Dockerfile就像下面那样只安装了git

$_POST

现在我想创建一个图像或在节点或locallhost中运行一个容器iam using command

FROM ubuntu:14.04    
RUN apt-get update && apt-get install -y git 

我收到以下错误

ansible all -s -m shell -a "docker build -t first:latest ."

如何继续我的场景,在执行ansible ad-hoc命令时在节点中有一个docker镜像或docker容器?

1 个答案:

答案 0 :(得分:0)

这是因为每台计算机上都没有localhost上的文件。您需要先将它们复制到某个位置。

ansible all -s -m "synchronize" -a "src=./ dest=/tmp/build/"

这会将您当前的文件夹复制到/tmp/build如果您只想复制Dockerfile,也可以使用文件模块。然后你应该运行构建命令

ansible all -s -m shell -a "docker build -t first:latest /tmp/build"

这回答了你的问题,但这样的方法仍然不正确,因为你应该使用docker_images模块来运行构建而不是shell

ansible all -s -m docker_image -a "name=first tag=latest path=/tmp/build state=build force=yes"