[英]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.