技術討論區 > DevOps 討論版

[docker]Container之變數傳導

(1/1)

duncanlo:
執行Container時:

--- 代碼: ---sudo docker run -id -e VAR1=VAL1 ubuntu /bin/bash
--- 程式碼結尾 ---


--- 代碼: ---sudo docker run -id -e VAR1=$VARx ubuntu /bin/bash
--- 程式碼結尾 ---


--- 代碼: ---sudo VAR1=VAL1 docker run -id -e VAR1 ubuntu /bin/bash
--- 程式碼結尾 ---

套用某個系統變數(直接指定VAR,不用給VAL,但不吃一般User的,可能是root才能行):

--- 代碼: ---sudo docker run -id -e LANG ubuntu /bin/bash
--- 程式碼結尾 ---

由某個檔讀取:

--- 代碼: ---sudo docker run -id --env-file ./ENV.LIST ubuntu /bin/bash
--- 程式碼結尾 ---

一次性執行:

--- 代碼: ---sudo docker exec -it CONTAINER_ID /bin/bash -c "export VAR1=VAL1 && CMD"
--- 程式碼結尾 ---

執行中的Container再加入VAR=VAL:
(目前Docker版本無此功能)

Ref:

--- 代碼: ---https://docs.docker.com/engine/reference/run/#env-environment-variables
--- 程式碼結尾 ---

--- 代碼: ---https://docs.docker.com/engine/reference/commandline/run/
--- 程式碼結尾 ---

Yamaka:

--- 引述: duncanlo 於 2016-02-28 23:46 ---套用某個系統變數(直接指定VAR,不用給VAL,但不吃一般User的,可能是root才能行):

--- 代碼: ---sudo docker run -id -e LANG ubuntu /bin/bash
--- 程式碼結尾 ---

--- 引用結尾 ---

可能是新版的關係吧

$ docker info
Server Version: 1.12.3

一般 user 也可以套用 host 的環境變數


--- 代碼: ---$ docker run -u developer -it --rm ub1604/sshd-base env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=93b4dcdecd4e
TERM=xterm
DEBIAN_FRONTEND=noninteractive
LANG=en_US.UTF-8

$ docker run -u developer -it --rm -e CXX ub1604/sshd-base env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=393b3ad0f48b
TERM=xterm
CXX=clang++
DEBIAN_FRONTEND=noninteractive
LANG=en_US.UTF-8
--- 程式碼結尾 ---

導覽

[0] 文章列表

前往完整版本