今天我们来聊聊[docker如何查看日志命令],以下2关于的观点希望能帮助到您找到想要的结果。
一:Docker实践之镜像启动及常用命令贡献用户名:【酒笙】 ,现在由窝牛号小编为你分析与【docker如何查看日志命令】的相关内容!
最佳答案前面简单的介绍了如何在Linux中安装 Docker ,这节内容,我们学习Docker镜像启动
我们Docker启动镜像从哪里来呢?镜像由我们自己或者他人构建,构建好的镜像可以直接放在本地或者上传到远程镜像仓库。当我们运行一个Docker镜像时,会先在本地查找是否存在所要运行的镜像,如果没有则会去远程镜像仓库拉取,默认为官方的镜像仓库,当然,我们也可以改为自己的私有镜像仓库。接下来,我们先了解几个简单的命令。
我们直接在安装好Docker的主机上执行 docker run nginx
我们从运行日志可以看到这样的字眼:
docker发现本地不存在nginx的镜像文件,便直接去仓库中查找下载并运行,因为我们没有让镜像后台运行,所以这次运行起来的容器会随着这次远程连接断开而停止。当我按下 ctrl+c 时,容器便会停止
如果要让容器后台运行,则需要在启动时加 -d 这个参数,
我们来看一下当前运行中的容器
可以看到,我们的nginx是启动起来了,但是,我们并不能访问它。容器有自己的一套虚拟系统,如:网络、文件。如果我们需要访问,则需要给容器和宿主机做一个映射,让宿主机和容器能够交互。这里,我们就给nginx增加端口和配置文件映射。我为了省事,就直接把容器中的配置文件复制出来用
接下来,我们便来建立这个映射关系
来看看容器是否启动成功
这时候,我们便能访问我们的nginx服务,
前面已经说到,容器有自己的虚拟系统,如果需要持久化的数据不映射到宿主机上,那么当容器销毁时,数据也会随之丢失,所以,我们在用容器运行时,一定要做好数据的保存方式。
在前面,我们列出了几个常用的Docker命令,这里,我们把这几个常用命令稍微讲解一下,
ps主要是查询正常运行的容器
docker ps 是当前正在运行的容器
这里面的 CONTAINER ID 很重要,后面我们的很多操作都需要基于这个 CONTAINER ID 或者 NAMES 。
docker ps -a 则是列出运行中和停止中的所有容器,
这几个参数这是启动/停止/重启/删除容器的参数,如: docker restart 5ae0319e1795 ,如果要删除容器,必须要先停止,否则会提示
docker run [OPTIONS] IMAGE [COMMAND] [ARG…],它的运行参数就比较复杂了,
这里还是只介绍几个常用的命令参数吧,
运行示例 docker run -d --name nginx-cc -v /root/nginx/:/etc/nginx/ -p 9999:80 -m 256M nginx
cp命令主要是用于宿主机和容器间的文件复制,一般格式如下:
docker cp [OPTIONS] 容器名/容器Id:容器文件路径 宿主机文件路径 从容器复制到宿主机
docker cp [OPTIONS] 宿主机文件路径 容器名/容器Id:容器文件路径 从宿主机复制到容器中
inspect主要是查看容器或者镜像元数据,如:
从返回的信息中,我们可以得到,启动时所设置的启动参数。如:
如果,那天我们忘记之前容器启动的参数时,便可以通过 inspect 来帮我们找回来。
logs主要是查询docker容器的运行日志,如:
以上就是窝牛号小编解答(酒笙)贡献关于“Docker实践之镜像启动及常用命令”的答案,接下来继续为你详解用户(心一向在流浪)贡献“将日志输出到Docker容器外”的一些相关解答,希望能解决你的问题!
二:将日志输出到Docker容器外本文最佳回答用户:【心一向在流浪】 ,现在由窝牛号小编为你探讨与【docker如何查看日志命令】的相关内容!
最佳答案我们可以利用 docker logs 命令查看 Docker 容器内部应用程序运行时所产生的日志,可以免除首先进入 Docker 容器,再打开应用程序的日志文件的过程。docker logs 会监控容器中操作系统的标准输出设备(STDOUT),一旦 STDOUT 有数据产生,就会将这些数据传输到另一个“设备”中,该 Docker 的被称为“日志驱动(Logging Driver)”
例如,我们有一个容器实例 ID 为 “da6743d61e1a” ,随后我们使用 docker logs 命令,查看 da6743d61e1a 容器的日志
此时,Docker 日志也在同步输出,输出的日志类似下面这样。
Docker 是怎样做到的呢?或者说,所谓的 Docker 日志驱动,到底做了些什么事情?
我们使用 docker info 命令,可以看到 Docker 容器的相关信息,其中有一项 Logging Driver 的字段。
通过输入命令,将得到Docker 当前所设置的日志驱动类型:journald
其实,Docker 已为我们提供了大量的日志驱动类型。
通过 --log-opt 参数为 json-file 日志驱动添加了两个选项,max-size=10m 表示 JSON 文件最大为 10MB(超过 10MB 就会自动生成新文件),max-file=3 表示 JSON 文件最多为3个(超过3个就会自动删除多余的旧文件)
除了在启动 Docker 容器时,可指定日志驱动以外,还可以通过修改 Docker 配置文件来指定日志驱动。
打开配置文件 /etc/sysconfig/docker ,找到以下配置片段:
可以看出,默认的日志驱动为 journald,把它修改为 syslog
然后重启 docker
众多日志驱动类型中,较为常用 的是 Syslog,因为 Syslog 是 Linux 的日志系统,很多日志分析工具都可以从 Syslog 中获取日志,比如流行的 ELK(Elasticsearch、Logstash、Kibana)日志中心。Logstash 用于收集日志,Syslog 中写入的日志可转发到 Logstash 中,随后将日志存入 Elasticsearch 中,最后可通过 Kibana 来查询日志。
接下来咱们的目标是将 Docker 容器中输出的日志写入 Syslog,那么后面需要做的就是将 Syslog 接入 ELK 了。
默认,Linux 操作系统已经安装了 Syslog 软件包,但它叫 Rsyslog。实际上,Rsyslog 是 Syslog 标准的一种实现,还有一种叫 Syslog-ng 的第三方实现。虽然 Syslog-ng 的功能较为强大,但我们还是选择使用 Rsyslog,因为操作系统已经预装了,我们无须单独安装,可以通过以下命令查看 Rsyslog 是否已安装。
如果要开启 Rsyslog 服务,我们必须对 Rsyslog 进行配置,打开文件 vi /etc/rsyslog.conf
在 rsyslog.conf 文件中有一段配置,我们需要手工去开启
重启 Rsyslog 服务,否则配置无法生效
此时,我们可以查看本地是否对外开启了 514 端口
关于[docker如何查看日志命令]的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除
热门信息
阅读 ()
1 注册微信号怎么注册第二个阅读 ()
2 怎么把照片变成卡通头像阅读 ()
3 手机越充越少电怎么解决