酷!學園

技術討論區 => DevOps 討論版 => 主題作者是: duncanlo 於 2016-02-28 23:46

主題: [docker]Container之變數傳導
作者: duncanlo2016-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/
主題: Re: [docker]Container之變數傳導
作者: Yamaka2016-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