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

坦笑&&life 2024-06-21 11:37:02 阅读 79

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

一. docker logs 命令,跟踪容器的日志并且输出日志的时间0、代码输出日志1、docker logs官方2、kubectl logs官方 二. 容器有挂载目录的时候,容器反向生成为镜像,挂载的内容不会保留。只有实打实拷贝进容器的反向生成镜像才会保留。无容器目录挂载有容器目录挂载 三. docker怎么修改默认数据存储路径docker 配置docker怎么修改默认数据存储路径 四. 【docker】怎么查看docker镜像的dockerfile、docker history 显示不全一. docker history 显示不全二. 【docker】怎么查看docker镜像的dockerfile前言步骤


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

0、代码输出日志

from flask import Flaskapp = 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.jsoncat /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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。