作者 主題: [docker]Container之變數傳導  (閱讀 6290 次)

0 會員 與 1 訪客 正在閱讀本文。

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
[docker]Container之變數傳導
« 於: 2016-02-28 23:46 »
執行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

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: [docker]Container之變數傳導
« 回覆 #1 於: 2016-11-17 11:53 »
套用某個系統變數(直接指定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