docker化笔记二、镜像应用服务日志输出到宿主机器

        考虑容器本身是无状态的,每次启动都是新的状态,而在实际项目中往往又会出现需要往固定目录进行写入或读取文件。本章以日志为例进行说明,仅作抛砖引玉,实际项目不应该以这种方式去搜集日志(常用Syslog日志驱动类型,再用日志分析工具,比如ELK,进行获取搜集)。

        继续使用之前的样例,不清楚请先阅读上一篇文章《docker化笔记一、java程序打包并发布到docker容器》

一、设置日志有关输出目录

        1、应用的输出日志地址设置为“/dockercontainer/applogs”,本文需修改logback-boot.xml内容为:

		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/dockercontainer/applogs/dockerdemo-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        	<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            	<!-- 最大64MB 超过最大值,会重新建一个文件-->
           		<maxFileSize>64MB</maxFileSize>
         	</timeBasedFileNamingAndTriggeringPolicy>
 		</rollingPolicy>

        2、宿主创建日志目录“/applogs”

二、制作镜像

        1、将更新后的jar包上传到服务器目录/jars下

        2、进入jars目录下,使用docker build命令创建镜像

docker build -t docker-demo:2.0 .

        3、查看本机已有镜像,会发现多出了docker-demo镜像,TAG为2.0

docker images 或 docker image ls

        4、启动镜像
        将宿主的“/applogs”目录挂载到容器的“/dockercontainer/applogs”目录。(禁用SELinux)

docker run -it -p 8088:8080 -v /applogs:/dockercontainer/applogs docker-demo:2.0 /bin/bash

        5、使用docker ps查看,镜像是否启动

        6、访问服务http://192.168.72.129:8088/docker/hello,端口与镜像启动的端口保持一致

三、查看日志

        使用以下三种方式查看的日志结果是一致的。如果容器重新启动,使用docker logs看到的只有最新的日志信息,而宿主或者容器(挂载)目录可以看到包括之前容器产生的日志。

        1、利用 docker logs 命令查看 Docker 容器内部应用程序运行时所产生的日志      

docker logs -f 8c1d02afd3ba(当前镜像id,使用docker ps查看)

        2、进入宿主的“/applogs”目录进行查看

        3、容器的“/dockercontainer/applogs”目录进行查看

docker exec -it 8c1d02afd3ba /bin/bash

================ 附:禁用 SELinux ================

        此处不禁用可能会导致程序报错或文件写入不成功。
        1、检查 SELinux 状态“sestatus”显示为“enabled”
        2、永久禁用 SELinux
        1)打开/etc/sysconfig/selinux文件
        2)将SELINUX=enforcing指令更改为SELINUX=disabled
        3、重启 CentOS 以保存更改“sudo shutdown -r now”
        4、检查 SELinux 状态“sestatus”为“disabled”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cys6736873

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值