脚本Docker,运行脚本后没有连接?

时间:2016-03-03 01:31:27

标签: bash docker

所以我有一个看起来像这样的脚本:

    #!/bin/bash
    if [ $1 ]; then
        docker-machine start $1
        docker-machine env $1
        eval $(docker-machine env $1)
        docker ps -a
    fi

一旦运行,这些命令的范围似乎已经结束。例如,一旦脚本运行,我就没有与docker-machine建立连接,但是我想编写这部分的脚本,以便我可以访问它。

例如,在运行此脚本(" ./ script.sh")之后,我仍然无法运行" docker ps -a"。

发生这种情况的原因是什么?如何在执行此脚本后将其有效连接?

1 个答案:

答案 0 :(得分:1)

脚本(或任何其他进程)无法修改其父进程的环境。这正是docker-machine env发出需要使用eval进行评估的shell代码的原因。

如果您希望在脚本之外访问这些变量,则需要安排在当前shell中运行eval $(docker-machine env <whatever>)