繁体   English   中英

boot2docker命令可在Shell上运行,但不能在脚本中使用

[英]boot2docker command works on shell, but not in script

这里是docker的新手。 我有一系列命令,如果将它们在shell上解雇了,就可以正常工作,但是如果我将它们放入脚本中,则不会。

boot2docker destroy
boot2docker init
boot2docker start
boot2docker ssh &
host=$(boot2docker ip 2> /dev/null)
# everything works fine up to here
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" docker@$host docker run --net=host my-image

如果我不尝试通过ssh运行命令,则一切正常。 即:

ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" docker@$host

这会弹出docker ssh提示。 但是,如果我确实通过脚本运行命令(这实际上是我要做的),则会收到错误消息:

level="fatal" msg="Post http:///var/run/docker.sock/v1.16/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?"

同样,如果我仅将最后一个命令或整个命令序列输入到shell中,就没有问题。 如何使该脚本起作用?

谢谢

更新如果我把它自己的脚本最后一行,并运行在命令行序列中的两个剧本,一切都很好(相同只是顺序输入的所有命令。)如果我链上的脚本,或者创建一个三分之一按顺序运行它们,我得到了错误。 我要怎么做?

谢谢

尝试使用host可能未定义host 您可能可以通过在运行ssh之前echo它的值来确认这一点。 最简单的解决方案是将这两行放在同一文件中:

host=$(boot2docker ip 2> /dev/null)
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" docker@$host docker run --net=host my-image

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM