Linux系列:docker logs 命令(跟踪容器的日志并输出日志的时间)、修改默认数据存储路径、查看docker镜像的dockerfile、docker history显示不全、有无容器目录挂载




一. docker logs 命令,跟踪容器的日志并且输出日志的时间

0、代码输出日志

from flask import Flask
app = Flask(__name__)
app.logger.info(str(args) + str(results))

1、docker logs官方

https://docs.docker.com/engine/reference/commandline/logs/

docker logs 命令,可以跟踪容器的日志并且输出日志的时间

docker logs -f -t chat-bot-client-qa

写入指定容器在某时间段的日志

docker logs --since="2022-09-19T01:00:00" --until "2022-09-21T09:40:00" chat-bot-client-qa &>file.txt

将最近1分钟的日志写到file.txt文件

docker logs --since 50m chat-bot-client-qa &>file.txt

查看实时日志,仅仅显示最新的100条日志数据

docker logs -f -t --tail 100 chat-bot-client-qa &>file.txt

2、kubectl logs官方

https://kuboard.cn/learning/k8s-advanced/logs/basic.html

查看命令

kubectl logs -f pod_name

导出到文件

kubectl logs pod_name &> app.log

官方案例

# 追踪名称空间 nsA 下容器组 pod1 的日志
kubectl logs -f pod1 -n nsA

# 追踪名称空间 nsA 下容器组 pod1 中容器 container1 的日志
kubectl logs -f pod1 -c container1 -n nsA

# 查看容器组 nginx 下所有容器的日志
kubectl logs nginx --all-containers=true

# 查看带有 app=nginx 标签的所有容器组所有容器的日志
kubectl logs -lapp=nginx --all-containers=true

# 查看容器组 nginx 最近20行日志
kubectl logs --tail=20 nginx

# 查看容器组 nginx 过去1个小时的日志
kubectl logs --since=1h nginx




二. 容器有挂载目录的时候,容器反向生成为镜像,挂载的内容不会保留。只有实打实拷贝进容器的反向生成镜像才会保留。

无容器目录挂载

1、也就是说宿主机未与容器进行路径映射,故我们可以直接使用指令: docker commit 容器名称/容器ID 像名:标签号,把容器保存为镜像; (其中镜像名和标签号是我们随机取的,新镜像名以及我们的标签号!)

2、我们在不能判断容器与宿主机存在目录挂载/路径映射之前,我们可以使用指令:docker inspect --format=',Mounts小容器名(其中,这个容器名为我们要测试的容器名)

有容器目录挂载

1、首先,我们存在容器目录挂载的容器在保存为新镜像时,里面的数据全部会被抛弃,不会保存在新镜像中,故我们不能像上面那样直接使用指令进行保存为镜像:

2、解决方法:我们可以先把与容器A进行了目录挂载/路径映射的宿主机相应目录下的文件拷贝到另外的一个备份文件夹,然后再把容器A保存为新镜像后,使用新镜像创建容器B并进行目录挂载路径映射时,映射路径改为宿主机上的备份文件夹,这样以来,我们使用新镜像创建的容器B中就能有原来宿主机原路径下的数据!

3、 指下’cn .f /usr/1ocal/proiect/ /usr/ocal/baseproiect 其中/usr/ocalpriec为原国录usrlocal/baseoroiec大备目录);
然后容器A保存为镜像: docker commt 新像名:标签号 使用新镜像创建容器B并与备份目录进行映射: docker run -id -name=容B-p 8081:8080 -V /usr/local/baseproject:/usr/local/tomcat/webapps --privileged=true 新镜像名: 标签号
dockerQ 常用指令总结:
-id:创建并运行一个守护式容器:
觉得还不错? 一键收藏

在这里插入图片描述




三. docker怎么修改默认数据存储路径

docker 配置

docker怎么修改默认数据存储路径

Docker 默认将数据存在 /var/lib/docker 目录下,如果需要修改默认的数据存储路径,可以按照以下步进行操作

1.停止 Docker 服务:

sudo systemctl stop docker

2.备份 /var/lib/docker 目录下的所有数据:

sudo cp -a /var/lib/docker /data/

3.修改 Docker 配置文件 /etc/docker/daemon.json,如果没有该文件则创建:sudo nano /etc/docker/daemon.json
在文件中添加以下内容:

vim /etc/docker/daemon.json
cat /etc/docker/daemon.json
"data-root": "/data/docker"

4.启动 Docker 服务:

sudo systemctl restart docker




四. 【docker】怎么查看docker镜像的dockerfile、docker history 显示不全

对于本地的镜像,我们使用docker history weblogic:latest 命令来查看它的构建命令,如图可以看到运行的启动脚本,暴露的端口等信息。还可以加 --no-trunc查看完整命令

docker history weblogic:latest --no-trunc

一. docker history 显示不全

docker history ff36 --no-trunc=true

二. 【docker】怎么查看docker镜像的dockerfile

前言

我们知道了根据dockerfile来制作镜像,如果给你一个现成的镜像,你能逆向查看出dockerfile吗?

否则,你怎么知道该镜像使用的是CMD还是ENTRYPOINT ,使用的是shell格式还是CMD格式?由于格式决定了docker内部如何产生PID1进程,因此有必要逆向一下。

步骤

对于dockerfile,我们首先要有基本的了解,dockerfile有自己的语法,基于一个基础的镜像,然后在镜像中定义安装的软件,启动的用户,暴露的端口,挂载的目录,以及容器启动后运行的命令:
在这里插入图片描述

知道了镜像构建的方法,那么对于一个已经下载到本地的镜像我们怎么去查看他构建时候的dockerfile呢?使用docker images 查看本地所有镜像:
在这里插入图片描述
对于本地的镜像,我们使用docker history weblogic:latest 命令来查看它的构建命令,如图可以看到运行的启动脚本,暴露的端口等信息。还可以加 --no-trunc查看完整命令:

在这里插入图片描述
从上面可以看到,使用的CMD语法,并且格式为exec格式。










愚昧之山绝望之谷开悟之坡

docker logs 命令,跟踪容器的日志并且输出日志的时间

容器有挂载目录的时候,容器反向生成为镜像,挂载的内容不会保留。只有实打实拷贝进容器的反向生成镜像才会保留。

docker怎么修改默认数据存储路径

【docker】怎么查看docker镜像的dockerfile、docker history 显示不全

云川之下

【docker】怎么查看docker镜像的dockerfile

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

坦笑&&life

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

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

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

打赏作者

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

抵扣说明:

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

余额充值