目录
一、启动与停止
二、镜像相关的命令
1. 查看镜像
2. 搜索镜像
3. 拉取镜像
4. 删除镜像
三、容器创建与启动容器
1. 查看容器
2. 创建容器
交互式方式创建容器
守护式方式创建容器
3. 容器启动与停止
四、容器操作命令
1. 文件拷贝
2. 目录(文件)挂载
3. 删除容器
五、docker inspect
1. 功能介绍
2. 参数说明
2.1. -f
2.2. --type
2.3. -s
3. docker inspect -f 更多用法
3.1. Go 模版 详解
3.2. 数据类型
3.3. 数据结构
3.4. 函数
3.5. if 语句
3.6. range迭代数据
3.7. 打印信息
3.8. 管道
3.9. Docker内置函数
json
join
lower
upper
title
split
3.10. 常用docker inspect --format 输出示例
4. 参考文档
六、容器服务日志
1. 简介
2. 常用命令
查看docker容器
查看容器日志(全部)
查看容器日志,只显示最后100行
查看容器最近三十分钟的日志
查看容器某个时间之后的日志
查看容器某个时间段的日志
查看容器日志并显示时间戳
查看容器日志某个时间最近的日志
将容器日志写入到文件
根据某个关键字查询日志
查询容器某个时间段的日志,并且根据关键字进行查询
详细命令:
注意:systemctl命令是系统服务管理器指令
REPOSITORY:镜像名称
TAG:镜像标签 (默认是可以省略的,也就是latest)
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
拉取镜像就是从中央仓库中下载镜像到本地
docker pull 镜像名称
按镜像ID删除镜像
创建容器常用的参数说明:
交互式方式创建容器
交互式方式创建容器(创建以后就进入到容器内部了)
这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态
退出当前容器
守护式方式创建容器
登录守护式容器方式:
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录(文件)挂载其实就是修改宿主机的文件,会自动修改容器内部的文件。
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,
这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:
查看IP
注意:
删除容器的时候,一定要先执行停止容器命令。
docker stop 容器名称(容器ID) 然后在执行 docker rm 容器名称(容器ID)
会以 json 格式得到 docker 镜像/容器的元数据。
如下,查看mysql镜像的完整元数据:
如下为以mysql:5.7启动的容器的完整元数据:
2.1.
通常我们需要获取某一个具体的key,会用grep,如下,grep会获取到其他的数据,不够完整或者有冗
余,还得进一步处理,但是 -f 可以解决这个问题:
2.2.
指定具体类型 如:–type container 声明查看容器的元数据
2.3.
显示总的文件大小
简单地说,-f 的实参是个 Go 模版,并在容器/镜像的元数据上以该 Go 模版作为输入,最终返回模版指定的数
据。Go 模版是一种模板引擎,让数据以指定的模式输出。这个概念对于 Web 开发者是非常熟悉的,Web 领域有
很多模版引擎,比如 Jinga2(用于 Python 和 Flask)、Mustache、JSP 等等,看下面的简单示例:
3.1. Go 模版 详解
模版指令
{{ }} 语法用于处理模版指令,大括号外的任何字符都将直接输出。
上下文
“.” 表示“当前上下文”。大多数情况下表示了容器元数据的整个数据结构,但在某些情况下可以重新规
定上下文,比如使用 with 函数:
可以使用 $ 来获取根上下文,只能获取一级key值
注意,单独使用 “.” 本身也是可以的,将输出未格式化的完整元数据:
3.2. 数据类型
inspect 数据可以由浮点数、字符串和布尔组成,可以使用 Go 模版内置函数进行比较判断。虽然 Go 模版
支持整数,但目前 inspect 数据中的数值类型都是浮点数,而整数应该对于大多数场景更方便(详见该
Issue)。使用字符串时可以使用双引号。
数据中不存在的值是不可以用来比较的:
3.3. 数据结构
inspect 数据使用 map 以及数组保存。Map 结构可以通过 . 的链式来访问 map 内部数据:
获取信息。因为属性名称中的点号会被解析成级联信息,进而导致返回错误结果。即便使用引号将其包含
也会提示语法格式错误。此时,需要通过 index 来读取指定属性信息。前面卷的例子可以这样写:
2、如果返回结果是一个 map, slice, array 或 string,则可以使用 index 加索引序号(从零开始计数)来
读取属性值
3.4. 函数
除了 index 函数,其他很多函数也很常用。比如逻辑函数 and、or 可以返回布尔结果。
注意,函数是不能放在中间:
下面是一些常用的比较函数:
我们可以用这些函数来比较字符串、浮点数或整数:
要注意的是操作数类型必须匹配,数字比较时也需要类型匹配:
比较特殊的是,它支持多个参数进行与比较,此时,它会将第一个参数和其余参数依次比较,返回下式的
结果:
另外,可以使用 json 函数来生成 JSON 输出:
3.5. if 语句
条件语句 if 可以和前面的比较函数一起使用:
优化显示后为:
注意,{{end}} 语句必须有,else if 和 else 按需使用。
3.6. range迭代数据
range 用于遍历结构内返回值的所有数据。支持的类型包括 array, slice, map 和 channel。
使用要点:
3.7. 打印信息
docker --format 默认调用 go语言的 print 函数对模板中的字符串进行输出。
而 go语言还有另外几种相似的内置函数,对比说明如下:
3.8. 管道
管道 即 pipeline ,与 shell 中类似,可以是上下文的变量输出,也可以是函数通过管道传递的返回值。
3.9. Docker内置函数
json
Docker 默认以字符串显示返回结果。而该函数可以将结果格式化为压缩后的 json 格式数据。
join
用指定的字符串将返回结果连接后一起展示。操作对象必须是字符串数组
lower
将返回结果中的字母全部转换为小写。操作对象必须是字符串。
upper
将返回结果中的字母全部转换为大写。操作对象必须是字符串。
title
将返回结果的首字母转换为大写。操作对象必须是字符串,而且不能是纯数字。
split
使用指定分隔符将返回结果拆分为字符串列表。操作对象必须是字符串且不能是纯数字。
同时,字符串中必须包含相应的分隔符,否则会直接忽略操作。
3.10. 常用docker inspect --format 输出示例
1、Docker教程小白实操入门(19)--如何通过inspect指令查看数据卷的信息_docker inspect --type container-CSDN博客
2、docker inspect -f 详解(查询在主机上的进程pid)-CSDN博客
3、https://ld246.com/article/23
查看docker日志通常会使用到docker log指令,可以通过指令docker help logs来查看docker log提供
的功能:
Options(可选参数):
–details 显示更多详细的信息
-f, --follow 跟踪实时日志
–since string 显示自某个(时间)timestamp之后的日志,或相对时间,如42m(即42分钟)
–tail string 显示日志末尾后N行, 默认是全部显示
-t, --timestamps 在每行日志前加上timestamp(时间戳)
–until string 显示日志某个时间戳之前的日志,或相对时间,如42m(即42分钟)
docker log 提供了根据时间或者时间段查询日志,以及根据某个关键字查询日志的功能,
以下将举例常用日志查看命令:
查看docker容器
docker ps : 列出容器
OPTIONS说明:
- -a :显示所有的容器,包括未运行的。
- -f :根据条件过滤显示的内容。
- –format :指定返回值的模板文件。
- -l :显示最近创建的容器。
- -n :列出最近创建的n个容器。
- –no-trunc :不截断输出。
- -q :静默模式,只显示容器编号。
- -s :显示总的文件大小。
查看容器日志(全部)
查看容器日志,只显示最后100行
查看容器最近三十分钟的日志
查看容器某个时间之后的日志
这里演示的是查询2023年3月3日上午10点13分58秒后的日志
查看容器某个时间段的日志
查看容器日志并显示时间戳
查看容器日志某个时间最近的日志
将容器日志写入到文件
这里演示的是将指定容器最后100日志写入error文件中
根据某个关键字查询日志
这里演示的是根据error关键字查询日志
查询容器某个时间段的日志,并且根据关键字进行查询
这里演示查看容器在2023年3月3日上午10点13分58秒665到880的日志,并根据关键字’
Tomcat started on port’进行筛选
到此这篇查看docker版本(查看docker版本信息的指令)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/27507.html