2014-12-26 90 views
0

这里是docker的新功能。我有一系列的命令,如果在shell上将它们烧掉,就可以正常工作,但如果我将它们放在脚本中,则不要。boot2docker命令适用于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" [email protected]$host docker run --net=host my-image 

如果我不试图通过SSH运行命令,一切正常。即:

ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host

这带来了泊坞窗的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,没有问题。我怎样才能使这个脚本工作?

感谢

更新 如果我把它自己的脚本最后一行,并运行在命令行序列中的两个剧本,一切都很好(相同只是顺序输入的所有命令。 )如果我链接脚本,或创建第三个按顺序运行它们,则会出现错误。我该怎么做呢?

感谢

+1

事实上,这将是很多,如果更多的帮助,而不是downvoting,你回答了这个问题。 –

回答

0

host当您尝试使用它可能没有定义。您可以在运行ssh之前确认其值为echo。最简单的解决办法是将这两行一起放在同一个文件:

host=$(boot2docker ip 2> /dev/null) 
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host docker run --net=host my-image 
相关问题