syslog配置(centos系統,一般系統都有默認安裝):
vi /etc/rsyslog.conf
去掉前面注釋
日志配置:
vi /etc/rsyslog.d/docker.conf
(一般默認配置會加載/etc/rsyslog.d/目錄下所有.conf配置文件,在/etc/rsyslog.d/docker.conf下可以找到路徑)
# 定義日志模版
$template web,"/var/log/docker/%programname%/%timereported:0:10:date-rfc3339%.log"
# ${name}為設docker啟動時設置的tag名稱
if $programname == "${name}" then
?web
# 終止其它文件輸出日志
& ~
stop
容器啟動:
docker run -i -d \
--name ${name} \
-v ${worker_dir}:/tmp \
-w /tmp \
-p 8080:8080 \
--log-driver syslog \
--log-opt syslog-address=tcp://127.0.0.1:514 \
--log-opt tag="{{.Name}}" \
openjdk:8-jdk-alpine \
java -jar -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=test ${jar_name} -Dexec.args="${name}"
注: tag="{{.Name}}" {{.Name}} 引用當前容器name, ${name} 可自定義容器名稱 參考: https://docs.docker.com/config/containers/logging/log_tags/
啟動后 就能在/var/log/docker/ 目錄下找到對應日志文件
docker其它日志驅動參考:https://docs.docker.com/config/containers/logging/configure/