当前位置:   article > 正文

docker学习-Docker日志、容器元数据、进程查看等进阶命令_容器的历史记录和元数据

容器的历史记录和元数据

后台启动容器

docker run –d centos
  • 1

发现在直接执行这个命令后,创建的容器被自动关闭,因为这个容器没有前台进程,docker发现没有应用,就会自动停止这个容器。
在这里插入图片描述

在这里插入图片描述

查看日志

docker logs 
  • 1

在这里插入图片描述

#在确认没有容器运行的情况下,后台运行一个容器,并让容器执行一个脚本,这个脚本的作用是每隔一秒打印“jackHappy”字符串,此时输入docker ps,发现存在正在运行的容器。
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200908220637727.png#pic_center)


**docker logs 容器id** #输出了这个容器的log,t表示显示时间戳。
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

**docker logs –tf –tail n 容器id** 	#查看容器运行的日志,显示日志条数为n
  • 1

在这里插入图片描述

查看容器中的进程信息

docker top 容器id  # 查看容器中的进程信息
  • 1

在这里插入图片描述

查看刚才创建并运行的容器的内部进程信息
在这里插入图片描述

docker top 命令只能查看现在正在运行的容器的内部进程运行情况,具体实验结果如下图所示:

查看容器的元数据

docker inspect  #inspect的英文单词的意思为:检查、查看、视察,这个命令其实就是查看docker容器的详细信息。
  • 1

在这里插入图片描述

查看一个正在运行容器的信息(也可查看已经停止运行的容器内部信息):
在这里插入图片描述

解读:通过docker ps 命令得出的容器id只是一个缩写,真正的id其实很长:
在这里插入图片描述

给容器传入的参数,也就是刚刚写的一个循环输出的脚本:

在这里插入图片描述

容器的状态:已经停止运行,进程id为0,退出码为137,容器开始运行时间,容器停止运行时间:
在这里插入图片描述

从哪个镜像创建的容器?这里显示了镜像id(其他暂时看不懂,还需要继续研究):
在这里插入图片描述

容器网络配置,这里表明这个容器使用了桥接网络的方式(其他暂时看不懂,还需要继续研究):
在这里插入图片描述

进入当前正在运行的容器1
通常容器都是使用后台方式运行的,有时需要进入后台正在运行的容器

docker exec [–it] 容器id bashShell 	#在正在后台运行的容器中运行一个指令COMMAND,这个指令可以附带参数 ARG…
  • 1

在这里插入图片描述

实验,以交互式方式,通过/bin/bash进入后台正在运行的容器(这里需要区分和docker run指令的区别,docker run –it 是用来在创建一个新的容器的同时就以交互式方式进入这个容器运行;而这里的 docker exec –it 是重新以交互式方式进入一个之前已经创建的、正在后台运行的容器):
在这里插入图片描述

进入当前正在运行的容器2

docker attach 容器id 	#进入正在运行的容器的本地标准输入输出
  • 1

在这里插入图片描述

实验,通过attach指令进入正在运行的容器,发现屏幕输出容器运行进程的输出,这说明已经接入默认的标准输出:

在这里插入图片描述

docker exec 和 docker attach对比:
两种命令都是进入当前正在运行的容器,但不同之处为:
docker exec 为进入容器后开启一个新的终端,可以在里面进行操作(常用);
docker attach 为进入容器正在执行的终端,不会启动新的进程,这也印证了上面那张截图展示的结果,通过docker attach命令进入之前正在运行的循环输出”jackHaoopy”的容器,结果就是一直正在输出此字符串,并没有可操作性。

从容器拷贝文件到主机(这里是手动拷贝,后面可以通过卷的技术,实现“自动拷贝”)
(可以理解为将容器这个“小虚拟机”中的文件拷贝到宿主机当中)

docker cp 容器id:容器内路径  目的主机路径		#将特定容器内特定路径下的文件复制到目的主机的特定路径中
  • 1

# 只要容器存在,数据就存在于容器中,也就是说已经停止运行的容器里面依旧存在数据,我们也可以对这些数据进行操作。

实验:在容器内部创建一个文件,并把这个文件拷贝到主机中:

在这里插入图片描述

学习说明
这篇博客是我学习Docker的学习笔记,有些简单的地方一概而过,并不是非常详细,请见谅,但一些需要详细理解的概念和命令,我会在自己深入思考后,再多写一些自己的想法。

心得及收获
又花了一周的时间,把Docker常用命令学习完毕,前面学习的镜像和容器命令都是基础命令,本次学习的Docker日志、元数据、进程信息查看命令才是更加常用更加重要的命令。
学了一段时间的Docker后,已经对Docker有了一定的基础素养,并且体悟出了一个学习思想,那就是命令要经常敲,经常复习,敲到顺手,甚至达到肌肉记忆的程度,那就是“人机合一”的境界了,而且遇到不会的问题要经常 -–help或者查看官方文档进行学习,这样即锻炼了自学能力,也能保证学习到的知识是最专业最适合自己所遇到的问题的。
现在逐渐感受到学习的同时记笔记、写博客的好处了,这样做不光可以加深印象,还可以让之后的学习与回顾更加方便。一步一个脚印的来吧。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号