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