簡體   English   中英

如何在啟動時動態地將docker容器ip設置為環境變量?

[英]How to Set docker container ip to environment variable dynamically on startup?

我想將docker容器主機名導出為環境變量,以后可以在我的應用程序中使用。 在我的Docker文件中,我將腳本稱為“運行”作為最后一個命令

CMD run

運行文件是可執行文件,可以與我執行的其他命令配合使用,但是在我想將容器主機名導出到環境之前,它們可以正常工作。 變量如下

“運行”文件嘗試1

#!/bin/bash
export DOCKER_MACHINE_IP=`hostname -i`
my_other_commands
exec tail -f /dev/null

但是當我進入docker容器並檢查時,未設置變量。 如果我用

回聲$ DOCKER_MACHINE_IP

在導出后在運行文件中,當我嘗試時它在控制台上顯示ip

碼頭工人日志

我還嘗試從“運行”文件中采購另一個腳本,如下所示

“運行”文件嘗試2

#!/bin/bash
source ./bin/script
my_other_commands 
exec tail -f /dev/null

腳本再次包含導出命令。 但這也沒有設置環境變量。 我做錯了什么?

執行腳本時,腳本退出時,該腳本設置的任何環境變量都會丟失。

但是對於您在腳本上方的命令發布的兩種情況,環境變量都應該可用於腳本中的命令,但是當您通過docker run輸入docker容器時,將獲得一個不包含變量的新外殼。

tl; dr您導出的環境變量僅可用於設置該變量的shell的子shell。 並且,如果您在登錄時需要它,則應獲取./bin/script文件的源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM