繁体   English   中英

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

[英]set docker-machine variables using a bash script

我有一个像这样的脚本:

#!/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命令,则不是这种情况。 我究竟做错了什么?

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

docker-machine env default >> ~/.bash_profile

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

如果要在当前shell中设置环境,则需要“提供”脚本而不是运行它。

当您运行脚本时,变量将在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]

暂无
暂无

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

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