千家信息网

如何查看Docker容器日志

发表于:2024-10-03 作者:千家信息网编辑
千家信息网最后更新 2024年10月03日,本篇内容介绍了"如何查看Docker容器日志"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!验证Doc
千家信息网最后更新 2024年10月03日如何查看Docker容器日志

本篇内容介绍了"如何查看Docker容器日志"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

验证Docker正常启动

使用docker info 命令,返回所有容器和镜像的数量、docker版本、使用的执行驱动和存储驱动以及Docker的基本配置等。之前说过Docker是基于client-server架构,它有一个docker程序,既能做客户端又能做服务器端。作为客户端时,docker程序向Docker守护进程发送请求,然后再对返回的请求结果进行处理。

运行第一个容器

可使用docker run 命令创建容器。它提供了容器的创建到启动功能。运行

docker run -i -t ubuntu /bin/bash
  • 参数 -i 保证容器中STDIN是开启的;

  • 参数-t告诉Docker为要创建的容器分配一个伪tty终端。这样新建的容器才能提供一个交互式shell;

  • 接下来告诉Docker基于什么镜像来创建容器,上例使用的是ubuntu镜像,它是一个基础镜像,由Docker公司提供,保存在Docker Hub Registry上。

  • 最后告诉Docker在新容器中要运行什么命令,本例中在容器中运行/bin/bash命令启动了一个Bash shell。

运行命令后Docker会检查本地是否存在ubuntu镜像,如果没有就会连接Docker Hub Registry查看是否有该镜像,一旦找到就会下载并保存到本地宿主机中。

随后Docker在文件系统内部用这个镜像创建了一个新容器。它拥有自己的IP地址,以及一个用来和宿主机进行通信的桥接网络接口。

当容器创建完毕之后,Docker会执行容器中的/bin/bash命令,这时就可以看到容器内的shell了。

使用第一个容器

通过启动我们以root用户登录到了新容器红。这是一个完整的ubuntu系统。

输入exit就可以从容器返回到宿主机的命令行了。同时容器也停止运行。但是容器仍然是存在的。可以使用docker ps -a 命令查看当前系统中的容器列表。

docker ps命令只显示正在运行的容器,添加-a参数列出所有容器。-l 参数列出最后一次运行的容器,包括正在运行和已经停止的。

可以看出有三种方式可唯一指代一个容器:长UUID、短UUID和名称。

容器命名

之前创建容器时Docker自动生成了一个随机名称。如果创建容器时想指定名称可以使用--name参数。

docker run --name ivan_container -i -t ubuntu /bin/bash

一个合法的容器名称只能包含以下字符:小写字母、大写字母、数字、下划线、圆点、横线。

容器的命名是唯一的

docker rm 容器名 可以删除容器。

重新启动已停止的容器

docker start 容器名docker start 容器ID

附着在容器上

Docker容器重新启动时,会沿用docker run 命令时指定的参数来运行,因此容器重新启动后会运行一个交互式会话shell。

可以用"docker attach 容器名/容器ID"命令重新附着到该容器的会话上。运行完命令后需要按下回车进入该会话。

创建守护式容器

除了上面创建的交互式运行的容器,也可以创建长期运行的守护式容器。它没有交互式会话,非常适合运行应用程序和服务。大多数时候都需要以守护式来运行容器。

docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1 done"

在docker run上使用参数-d,容器会被放到后台运行。

查看容器日志

docker logs 容器名

-f 参数监控容器实时日志

docker logs -f 容器名

用Ctrl + C退出日志监控。

--tail 行数 获取最后几行日志

docker logs --tail 10 容器名

使用

docker logs --tail 0 -f 容器名

监控某个容器的最新日志而不必读取整个日志文件。

使用 -t 参数为每条日志项加上时间戳。

docker logs -ft 容器名

查看容器内的进程

docker top 容器名

在容器内部运行进程

在Docker 1.3之后,可以通过docker exec命令在容器被额外启动新进程。可以在容器内运行的进程有两种类型:后台任务和交互式任务。

后台任务的例子:

docker exec -d 容器名 touch /etc/new_config_file

-d 表示需要运行一个后台进程。之后是指定运行的容器和执行的命令。本例中新建了一个空文件。

交互任务的例子:

docker exec -t -i 容器名 /bin/bash

停止守护式容器

docker stop 容器名

docker stop 命令会向Docker容器进程发送SIGTERM信号。如果想快速停止某个容器,可以使用docker kill命令向容器进程发送SIGKILL信号。

docker ps -n x 命令会显示最后x个容器,不论容器正在运行还是已经停止。

自动重启容器

创建容器时可以通过--restart参数让Docker自动重新启动该容器。--restart标志会检查容器的退出代码,并据此来决定是否要重启容器。

docker run --restrart=always --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

--restart标志被设置为always,无论容器的退出代码是什么,Docker都会自动重启该容器。除了always,还可以设置为on-failure,这样只有当容器的退出代码为非0值得时候,才会自动重启。另外on-failure还接收一个可选的重启次数参数:

--restart=on-failure:5

这样当容器退出代码非0时,Docker会尝试自动重启该容器,最后重启5次。

--restart是1.2.0版本引入的。

详细的容器信息

docker inspect 容器名

查看容器的详细信息。使用-f --format来选定要查看的内容:

docker inspect --format='{{.State.Running}}' 容器名

查看容器的运行状态。

docker inspect --format '{{.NetworkSettings.IPAddress}}' 容器1 /容器2

查看容器的IP地址,可以同时制定多个容器,如上例所示。

--format -f支持完整的Go语言模板。

还可以浏览/var/lib/docker目录来深入了解Docker的工作原理。该目录存放着Docker镜像、容器以及容器的配置。所有的容器都保存在/var/lib/docker/containers目录下。

删除容器

使用docker rm删除容器。

运行中的docker容器是无法删除的。必须先通过docker stop或docker kill 命令停止容器,才能将其删除。

目前没有办法一次删除所有容器,不过可以通过小技巧来删除:

docker rm 'docker ps -a -q'

-a 表示列出所有容器,-q表示只需要返回容器的ID不返回其他信息。

"如何查看Docker容器日志"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

容器 运行 命令 参数 日志 进程 镜像 交互式 代码 任务 名称 后台 信息 内容 可以通过 宿主 宿主机 文件 正在 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 元神玩家攻击晋江服务器 星空影视下载后显示服务器异常 Mc服务器设置初始物品 医保数据库怎么维护 网络安全生产主要工作报告 军事通信网络技术读后感 边缘服务器多少钱 mc手机服务器里面的命令怎么搞 fiddler 服务器 中国国家社科基金项目数据库 数据库建设数据 软件开发公司创业背景 数据库多个模块 哪里的网络安全公司比较强 绿色上网文明上网网络安全教育 数据库审计机制 html表单注入数据库 许可证服务器激活 厦门奥烨网络技术有限公司怎样 初级网络技术员工作经验 典型种类的软件开发过程概述 软件开发工程师招聘广告设计 ui设计和软件开发有何区别 燃烧的远征比例平衡的服务器 海德威软件开发 北京国电网络技术有限公司 网络技术研究与应用毕业论文 网络安全教育机构谁最好 网络安全与教育文章 电脑网络安全模式能不能打印
0