使用bash脚本设置docker-machine变量

时间:2017-01-04 20:36:34

标签: bash docker docker-machine

我有一个像这样的脚本:

#!/usr/bin/env bash
eval $(docker-machine env default)

目标是自动设置变量,如

export DOCKER_TLS_VERIFY
export DOCKER_HOST
export DOCKER_CERT_PATH
export DOCKER_MACHINE_NAME

但是当我之后检查时,变量没有设置。如果我手动运行每个export命令,则情况并非如此。我做错了什么?

2 个答案:

答案 0 :(得分:0)

export使变量仅可用于活动shell会话。如果您希望它们在会话中持续存在,则必须将它们添加到您的bash配置文件中:

docker-machine env default >> ~/.bash_profile

这样,变量将在以后的所有shell会话中可用。确保在执行命令后重新启动shell。

答案 1 :(得分:-1)

如果您希望在当前shell中设置环境,则需要" source"脚本而不是运行它。

运行脚本时,变量将在子bash进程环境中设置,并且在脚本/进程终止后将不存在。

$ ./machine.sh
DOCKER_HOST is tcp://192.168.99.100:2376
$ echo "[$DOCKER_HOST]"
[]

当您提供脚本时,变量将在您当前的环境中设置

$ . machine.sh
DOCKER_HOST is tcp://192.168.99.100:2376
$ echo "[$DOCKER_HOST]"
[tcp://192.168.99.100:2376]