docker查看日志的命令(docker-compose 查看日志)
大家好!今天让创意岭的小编来大家介绍下关于docker查看日志的命令的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、docker常用命令
1、 service docker start // 启动docker
2、 docker images // 查看docker所安装的镜像
3、 docker search [name] 查询某个镜像 例如查询mysql docker search mysql
4、 docker pull [name] 拉取某个镜像 例如mysql docker pull mysql
5、 docker pull [name] [:tag] tag版本号 如果不写默认拉取最新的版本
例如: docker pull mysql:5.7
6、 docker rmi [imgaeId] 删除命令,imageId是镜像id
2.1 新建一个新的容器 docker pull centos
2.2 docker run [可选参数] image名字
参数说明
--name="Name" 给容器命名
-d 后台方式运行
-p [主机端口]:[容器端口] 指定容器的端口 例如启动tomcat 命令: docker run -p 8081:8080 tomcat 解释:8081是对外访问(服务器)的端口。8080是docker里面的tomcat端口. tomcat是镜像拉取下来后的名字. 例:若别人访问。IP+8081端口才能访问到tomcat启动的项目
-P 大写P是随机指定端口
-it 与容器交互,就是进入到容器里面
命令: docker run -it [镜像名称] /bin/bash 例子: docker run -it centos /bin/bash
docker ps 查看运行中的容器
docker ps -q 只查询运行容器的编号,一般与下面-a合并使用, docker ps -aq
docker ps -a 查看曾经运行过的容器
docker ps -a -n=1 加上-n可以指定查询最近几个运行的容器、
Ctrl+p+q 这样退出就不会停止容器
docker rm -f [容器id] 指定删除某个运行的容器
docker rm -f $(docker ps -aq) 删除全部运行的容器
docker start [容器id] 启动容器
docker restart [容器id] 重启容器
docker stop [容器id] 停止容器
docker kill [容器id] 强制停止容器
docker run -d [镜像名] 例如: docker run -d centos
但是有问题, docker ps 查询不到运行的容器
原因:docker容器用后台运行,就必须要有一个前台进程,docker发现没有应用,所以就自动停止
docker logs -tf --tail 10 [容器id]
t的意思是时间戳,f保留日志打印窗口,tail持续打印,10打印最后10条
docker top [容器id]
docker inspect [容器id]
方式一: docker exec -it [containt_id] /bin/bash // 进入该镜像内部
docker cp [容器id]:[容器路径] [主机路径]
二、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 run
原文
docker进程运行与独立的容器中,而容器是宿主机的一个进程。宿主机可以使本地的也可以是远程的。每当执行 docker run 之后,容器进程式独立运行的,他有自己的文件系统、网络以及与主机隔离的进程🌲。
这里将介绍如何使用 docker run 运行容器以及容器资源。
一个 docker run 命令使用如下:
docker run 命令必须指定一个容器镜像,镜像开发者可以定义镜像的一些默认值:
开发者可以通过 docker run [options] 添加或者修改镜像的默认设置。此外,开发者几乎可以完全覆盖掉容器运行时的默认设置。正因为 docker run 能修改镜像和容器的默认设置,所以他的 [options] 可选项要比其他任何docker命令都要多。
要知道更多的 [options] ,移步: options type
最好只是懂得 docker run 命令的人去使用这些选项!
当你运行Docker容器的时候你需要决定是要在后台运行还是默认前台运行,当你选择后台运行时会在命令执行后打印出最新运行的容器ID。
想要让你的容器以后台方式运行只需要在使用参数 -d=true 或者 -d 即可。docker设计的默认情况下,如果你的容器以后台方式运行,只有在父进程即docker进程退出的时候才会去把容器退出,除非你使用了 --rm 选项。如果你在运行容器时将 -d 和 --rm 两个选项一起使用,那么容器会在退出或者后台进程停止的的时候自动移除掉(只要一个情况便会自动移除镜像)。
dokcer容器后台运行是不能通过 service x start 来启动的,比如想启动一个后台运行的 nginx 服务:
这样虽然启动了容器内的 nginx 服务,但是是不可用的,因为这种方式违背了后台运行容器的使用规范。nginx服务虽然启动了,但是他的所属容器服务已经停了,导致nginx服务是不可用的。如果想启动一个nginx服务请使用如下命令:
当容器后台运行之后便不回响应命令行的的相关操作,可以通过网络连接或者文件挂载方式查看容器运行的输入输出日志。可以通过 docker attach 来操作。
在不指定 -d 的情况下,容器默认是前台运行的,可以看到容器运行时候的输入输出以及错误信息日志。容器甚至还可以模拟终端输入输出(TTY),配置项如下:
如果你没有指定 -a 参数,docker默认会指定 stdout 和 stderr ,你也可以任意指定你想要的终端显示信息,例如:
为了开启容器终端,你必须指定参数 -i -t 。通常情况下 -i -t 会一起使用 -it ,注意如果容器需要从一个pipe接收输入参数时是不能使用 -t 的,例如:
定义一个容器ID有三种方式:
UUID是由docker的后台进程创建的。如果你没有指定容器名称,那么docker会默认生成一个随机字符串名字。如果你指定了容器的名字,不管是选择前台运行还是后台运行甚至docker网络配置的时候,你都可以在通过名字 name 来引用该容器。
为了方便管理,你可以选择让docker将容器ID写入到一个文件中。这个功能类似于一些程序会将进程PID写入到文件中,例如:
虽然给一个容器指定ID不是严格的要求规范,但是你可以在启动容器的时候指定容器的标签 iamge:tag ,例如:
使用V2或之后的镜像格式制作的镜像文件具有摘要内存寻址功能。只要生成镜像的参数和方式没有改变,那么这个镜像的摘要是可预测和可引用的。
例如下面这个运行一个从 alpine 拉取的镜像:
镜像摘要: sha256:9cacb71397b640eca97488cf08582ae4e4068513101088e9f96c9814bfda95e0
...
果然 docker run 是参数最多的命令,篇幅太多了,先翻译到这里,大致使用已经涵盖了,先去翻译接下来的命令了。
更多信息请参考 原文
更多参数说明:
四、Java docker日志放哪了
Docker的日志分两类,一类是 Docker引擎的日志;另一类是容器日志。容器的日志 则可以通过 docker logs 命令来访问,而且可以像 tail -f 一样,使用 docker logs -f 来实时查看。如果使用 Docker Compose,则可以通过 docker-compose logs <服务名> 来查看。
以上就是关于docker查看日志的命令相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
免费windows7云主机下载(免费windows10云主机)