簡體   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