成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Docker 容器中如何獲取環境變量

系統 Linux
在這篇文章中,我們學習了如何從 Docker 容器中檢索所有的環境變量。我們首先討論了Linux中環境變量的重要性。然后我們了解了 docker exec 和 docker inspect 命令來檢索環境變量。

大家好,我是指北君。

Docker是一個容器化的平臺,它將一個應用程序連同其所有的依賴關系打包。大部分情況下,這些應用程序需要一個特定的環境來啟動。在Linux中,我們使用環境變量來滿足這一要求。這些變量決定了應用程序的行為。

在本文中,我們將學習如何檢索在運行 Docker 容器時設置的所有環境變量。就像有多種方法向Docker容器傳遞環境變量一樣,一旦設置了這些變量,也有不同的方法來獲取這些變量。

首先讓我們了解一下環境變量的必要性。

Linux 中的環境變量

環境變量是一組動態的鍵值對,可以在整個系統中訪問。這些變量可以幫助系統定位軟件包,配置任何服務器的行為,甚至使 bash 終端的輸出更直觀。

默認情況下,主機上的環境變量不會被傳遞給 Docker 容器。原因是 Docker 容器應該是與主機環境隔離的。因此,如果我們想在 Docker 容器中使用環境,那么我們必須明確地設置它。

現在讓我們來看看從 Docker 容器內部獲取環境變量的幾種方法。

使用 docker exec 命令獲取信息

為了演示,讓我們首先運行一個 Docker 容器,并向它傳遞一些環境變量。

docker run -itd --env "my_env_var=javanorth" --name mycontainer 

在這里,我們將 my_env_var 的值 javanorth 傳遞到名為 mycontainer 的 Docker 容器中。

現在讓我們使用 docker exec 命令來獲取名為 my_env_var 的環境變量。

$ docker exec mycontainer /usr/bin/env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=xxxxxxxxx
my_env_var=javanorth
HOME=/root

我們正在 Docker 容器內執行 /usr/bin/env 工具。使用這個工具,你可以查看 Docker 容器內設置的所有環境變量。注意,我們的 my_env_var 也出現在輸出中。

我們還可以使用下面的命令來實現類似的結果。

$ docker exec mycontainer /bin/sh -c /usr/bin/env
HOSTNAME=xxxxxxxxx
SHLVL=1
HOME=/root
my_env_var=javanorth
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/

注意,與之前的輸出相比,有更多的環境變量。這是因為這次我們是在 /bin/sh 二進制的幫助下執行命令的。這個二進制文件隱含地設置了一些額外的環境變量。

另外,/bin/sh shell并不是所有的 Docker 鏡像都必須存在的。例如,在包含 /bin/bash shell的 centos Docker 鏡像中,我們將使用以下命令來檢索環境變量。

$ docker run -itd --env "container_type=centos" --name centos_container centos

$ docker exec centos_container bash -c /usr/bin/env
container_type=centos
HOSTNAME=xxxxxxxx
PWD=/
HOME=/root
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env

我們也可以使用 docker exec 命令來獲取單個環境變量的值。

$ docker exec mycontainer printenv my_env_var
javanorth

printenv 是另一個命令行工具,用于顯示 Linux 中的環境變量。在這里,我們將環境變量的名稱 my_env_var 作為參數傳給 printenv。這將打印出 my_env_var 的值。

這種方法的缺點是,為了檢索環境變量,Docker容器必須處于運行狀態。

使用 docker inspect 命令獲取

現在讓我們來看看另一種在 Docker 容器處于停止狀態時獲取環境變量的方法。我們將使用docker inspect 命令來實現這一目的。

docker inspect 提供所有 Docker 資源的詳細信息。輸出是JSON格式的。因此,我們可以根據我們的要求過濾輸出。

讓我們操作 docker inspect 命令,只顯示容器的環境變量。

$ docker inspect mycontainer --format "{{.Config.Env}}"
[my_env_var=javanorth PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]

在這里,我們使用-format選項過濾了 docker inspect 輸出中的環境變量。同樣,輸出中出現了my_env_var。

與docker exec不同的是,docker inspect命令對停止和運行的容器都有效。

總結

在這篇文章中,我們學習了如何從 Docker 容器中檢索所有的環境變量。我們首先討論了Linux中環境變量的重要性。然后我們了解了 docker exec 和 docker inspect 命令來檢索環境變量。

docker exec方法有一些限制,而docker inspect命令可以在所有情況下運行。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2020-08-05 09:48:20

Docker容器工具

2023-12-12 13:22:00

LinuxDocker容器

2022-10-14 13:33:35

2021-06-18 08:43:20

環境變量Linux

2020-08-17 07:38:47

Linux系統

2011-06-14 09:21:55

Linux Qt 環境變量

2010-01-18 14:47:42

VB.NET獲取環境變

2010-10-11 09:41:23

MySQL環境變量

2021-03-04 23:11:59

環境變量Python

2019-05-30 10:20:10

Linux環境變量命令

2009-06-29 15:06:23

環境變量配置Java

2010-03-26 12:50:02

CentOS系統

2023-11-01 13:40:25

GolangGo

2021-02-15 15:52:27

Linux環境變量命令

2012-09-18 01:22:33

Java環境變量Classpath

2017-03-07 19:30:54

Windows 7Windowsjava

2021-11-18 15:54:17

FreeDOSLinux

2011-08-22 15:06:19

linux環境變量

2009-12-25 09:44:59

redhatPATH設置環境變量

2009-06-15 16:28:30

JAVA環境變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品亚洲欧美日韩一区在线 | 国产区精品视频 | 日韩av电影在线观看 | 国产精品久久久久久久久久久久 | 亚洲精品日韩综合观看成人91 | 国产精品99久久久久久久vr | 成人av一区二区三区 | 91国内外精品自在线播放 | 久久精品久久久 | 在线欧美一区 | 国产精品美女久久久久久免费 | 日韩精品一区二区三区老鸭窝 | 黄色片网站国产 | 日韩三级 | 欧美精品在线免费观看 | 亚洲精品在线91 | 欧美影院| 国产一区二区a | 黄色毛片网站在线观看 | 99r在线 | 一级毛片免费完整视频 | 国产日韩欧美在线播放 | 天天综合91 | 成人av播放 | 久久久精品一区 | 一区在线视频 | 欧美一区中文字幕 | 电影在线| 午夜网 | 伊人狠狠干 | 色秀网站| 日批免费看| 国产亚洲欧美在线 | 久久精品小视频 | 国产精品成av人在线视午夜片 | 国产精品99久久久久久宅男 | 免费看黄色小视频 | 久久激情视频 | 国产精品国产三级国产aⅴ中文 | 国产精品中文在线 | 波多野结衣一区二区三区在线观看 |