簡體   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