您好,登錄后才能下訂單哦!
上一篇文章介紹了如何創建一個Docker容器,本篇文章(2017-08)介紹如何設置Docker容器環境變量,例如示例中的時區環境變量,需要注意的是容器的環境變量需要在創建容器時指定,容器時運行無法添加或者更改。
發現使用 docker創建的 tomcat容器日志時區不正確(時差8小時),即使掛載了宿主機 /etc/localtime文件(宿主機時區是正確的),雖然容器的操作系統時間正常了,但是 tomcat的日志時區仍然是錯誤的,這對容器日志分析帶來麻煩,我們的目標是為創建的tomcat容器設置正確的時區。
軟件版本
Tomcat:9 On Docker 1.13.1
宿主機時區文件
tail -n1 /etc/localtime
CST-8
創建容器使用的命令
docker run -tid --name test -p 10080:8080 \
-v /usr/local/tomcat/logs \
-v /etc/localtime:/etc/localtime \
--label aliyun.logs.catalina=stdout \
--label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt \
tomcat:9
如果對 docker命令參數不熟悉可以使用 --help 幫助,或者參考這篇文章 <<創建一個Docker容器>>
日志時區
docker logs --tail 1 test
10-Aug-2017 06:43:48.390 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]
注意: 日志時間 06:43:48 是不正確的。
創建容器時指定TZ時區環境變量,例如設置時區為 Asia/Chongqing 。
docker run -tid --name new -p 10080:8080 \
-v /usr/local/tomcat/logs \
-e TZ=Asia/Chongqing \
--label aliyun.logs.catalina=stdout \
--label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt \
tomcat:9
再次驗證容器時區
docker logs --tail 1 new
10-Aug-2017 14:44:51.736 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
注意: 日志時間 14:44:51 才是正確的。
run子命令 -e 參數設置容器的環境變量可以指定多次,多個環境變量還可以使用讀取文件的方式 。
docker run --help | grep -i '\-env'
-e, --env list Set environment variables
--env-file list Read in a file of environment variables
如何為Docker容器設置環境變量?
doker&k8s Qun [703906133]
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。