Docker 容器命令(下)|学习笔记

简介: 快速学习 Docker 容器命令(下)

开发者学堂课程【Docker 快速入门Docker 容器命令(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/850/detail/14038


Docker 容器命令(下)


内容介绍:

一、回顾

二、启动守护容器

三、查看容器日志

四、查看容器内运行的进程


一、回顾

上半场主要介绍了容器的新建运行,查看当前正在运行的容器命令,无非是PS X Linux 的,Docker PS X Dr 里面的,剩下这些重启停止,退出,这些没技术含量,退出的方式 Exit citedcountry p+q,这是第三部分,上一讲启动式交互,-it,接下来来看看重要的例如启动式交互有没有别的方式?

例如现在不想给交互,启动就行了,不用返回对话窗口命令行终端,希望后台以守护进程的方式启动,这是第一个。


二、启动守护容器

-Excited 关闭退出,-control 加 Q,关闭不退出,想重新进来可以。后台运行容器并返回容器 ID,也即启动守护式容器,刚才讲过 docker 乱了,再来演示一次docker images,上进行 docker ran -it

image.png

是以交互并返回命令,行终端,返回 cent OS,就不再写 --name 是返回一个新的容器 ID,说明从 Linux 宿主机从大海爬到鲸背上,进入到了新的编号的容器 ID 里面,前面讲过 PWDLS 的 -L,言下之意是标准的 Linux 命令,因为现在跑的是迷版的精简版的 docker 上,里面运行的生产 Visa。

可是还有一种情况是,只喜欢这服务运行,不需要跟交货,后台跑着就行了,退出重新进行。

image.png

docker 当前是根本没有正在运行任何东西,docker ran- it 后台运行cent OS Visa。

没有交互窗口,桌面是的主机。没有进 docker,但是它启动过,这时可能会想一个问题,现在 docker PS,前面讲过会不会返回,有这么一个容器,答案是没有。

那没有的话,又怎么会返回值?说明是一定启动成功过,但是有一个 docker 的机制,甚至有第二个问题,-ID 这时交互和后台两种都需要有,CAD 的这时,会给大家演示,这时需要运行在后台,有些需要运行在前台跟交货,各有各的用处,吃西餐的这时,说叉子重要还是勺子重要,都重要,在这可以看,发现容器已经退出了有没有启动?

否则的话,怎么会出这么一串 ID,只有出正确的容器 ID 编号。这时说明肯定启动过,但是 Docker PS,查了以后是 docker 容器里面当前正在运行的容器实例,当前正在运行的进程,很重要一点是包括容器后台运行就必须要有个前台进程。

容器运行的命令,如果不是那些一直挂起的命令,例如它就会自动是 docker 的机制,比如的外部容器,假设也可以在 docker 上跑 niginx 的正常情况下。

配置系统服务只需要启动 nginx,在安装过用过,但是这样做后台进程启动的模式在 Linux 上面没有问题,但是 docker 就导致前台没有运行,前面讲 run ID 这时,是需要有个前台交互多大会,先别走要跟交互,因为前面的这时说过

image.png

是有这样的交互命令,前台有一个,所以后台就有一个进程扫着是 APP 的状态,但是现在,只以后台的方式起到根本,就前台没有交互,就比说一个饭店老长时间啦,连个人都见不到,根本没有顾客,厨师,就把灶火给停了,所以就导致 docker觉得前台没有运用,这样容器后台启动以后会立即自杀,因为他觉得没事可做所以不是的错,是 DR 机制,所以最佳解决方案是将要运行的程序,以前台进程的形式运行就行。

交互的用 -it 就说穿了是前台启动刚启动以后登录进容器,不管它是,它都会给返回一个自身容器 ID 自身容器,ID 编号的一个命令行终端。


三、查看容器日志

image.png

容器日志 docker logs ,鲸鱼背上,要有一个日志,背上装载了几个箱子,每个箱子里面到底是什么?

docker 有它自己的日志,具有功能,请看主要参数有,是 Linux 的 tale 意思,T 是时间,F 是跟随最新的日志打印相当于永远取最新版,tale 是显示最后多少条,日志是从下面追加继续往下写,这导致 docker 觉得没事做,没有命令会挂起,会自动退出,如何让他不退出,主要是给大家演示一下 -d 请看这一句话的作用:

image.png

image.png

/bin/sh-c”while ture;  做错事永远是死循环,需要脚本编程,Linux 高级部分学过了,请看:do echo hello zzyy 2;

每两秒钟打印一句话,一直持续打印,言下之意是要把输出打印到控制台上面,这样就会导致前台有一个响应,就算后台启动的话,docker 也不会自关闭,运行一次试试,大家请看现在 docker PS,是都没有的。

此时再来看 docker 状态是 up,根本就没有停,因为后台启动,不想跟有一个交互窗口,还是想回到宿主机,看桌面,这时告诉主机,但是并不代表着程序不可以在后台安静的运行,此时就要看 docker logs。

查某一个容器日志,应用个容器 ID 进去

image.png

image.png

每隔三秒钟打印一串的后台,有个程序跑着,将这些命令加上去,加入-T, T 是-time的意思,加入时间。现在每两秒钟打印测试,大家请看,是2018年7月11号,- T ,-F 是意思?是不停的追加。大家看是46,下一次是18。

因为是每两秒钟打一次,这样大家看说明,可以持续的看 docker 的日志,假设太多了。看不了这么多 tale

只看到数三行。打开没问题,刚才是抓出来三行 docker Log 是常用的参数来产看-F-tale ,-T,去查看 docker 里面某一个具体容器的日志,鲸鱼背上十个箱子,每个箱子的容器 ID 都不一样,要去哪个箱子里去看,鲸鱼都给记着账,就这么简单

image.png


四、查看容器内运行的进程

现在 docker ps,还打着 hello 的小脚本。

查看容器内的进程,查看进程用 top 容器,Linux,top 是 Linux 的,但是现在docker ps 当前正在运行的容器,要去查看 Docker top 这时大家请看,原来容器里面,docker是跑着,看 PID,UID,PPID,副进程,用户 ID 都一样。

image.png

image.png

跟的 Linux,几乎是一致,再次注意?现在 ID 是 docker 里面跑着的一个精简版的cent OS 不要忘了这句话,前面的笔记都是重点,不要觉得学理论枯燥,可以用docker top 可以把容器看做是一个简易版的 Linux 环境。所以大部分 Linux 的命令,在 docker 里都可以使用,个别除外。

前面讲了 PS Linux,能用 docker PS 的 top,Linux 能用 docker top 都能用。具有相通相融性,因为 docker 的本质这些容器跑着的 docker 身上跑这些容器的本质上是一个精简版的 Linux 环境。

重点:

可以把容器看做是一个前易版的 Liux 环统(包括 root 拥户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

然后 top 完成以后就知道,在容器里,是跑着那一些,echo hello 等。每两秒钟打一次 hello 的语句,用 top 查看,查看容器内部的细节

image.png

dockerInspect 容器 ID 熟悉我讲课风格的都知道,喜欢磨耳朵先提前说。因为内容是到后面的数据卷和容器才会讲到。这时,才会更对命令有更加深刻的理解。再次跟强调,再次记着 docker 镜像是一层套一层,像一个同心圆一样,所以 inspect是查看容器内部的细节,整个容器描述一下阶层串的形式,嵌套的形式描述,请看命令有 Docker inspect 查当前正在运行

image.png

运行的容器就叫容器 ID,新建的容器,它的结构怎么样,如图是大队计算串,等实现了,以循环打印的一个脚本进行,言下之意现在,太多复杂的内容,ID 叫创建的时间的路径,所谓的路径是使用和登录的路径,看X是一个循环。言下之意,是一个数组括号,是 PVPV 建筑队计算串的形式,告诉容器的全部结构细节,后续会用得到,大家先了解一下。

image.png

进入正在运行的容器,并以命令函交互。前面讲过另外一种 country p+q 容器不停止退出,重新进来。这时 docker ps,现在还在运行着 Docker kill,直接先把他删掉了,请重新运行。

image.png

如果退出了,想重新进入或者重新跟 docker 发生交互主要用两个命令,Doctor exec,docker attach,很重要。

image.png

这两个命令,输入 docker run-it sent OS,回车,现在是相当于进入到了默认的登陆路径,是根目录下,再来一次,都不写,就进入大的默认根目录下面,例如excited 重新来。还有另一种写法:/bin/basb

image.png

也就是都不写,就进入大的默认根目录下面,例如 excited 重新来还有一种写法,登录这时大家请看 PWD 都是可以的,这时会看到一些 sure,意思是要交互,命令格式,默认不写也可以。

这时登陆以后,讲过了,Exit 是停止,control+P 号是退出不停止,所以当前正在运行:

image.png

输入8ab98ab9 退出。没关闭想从的宿主机进到容器里,这时请看Docker Attach。去拿哪个容器,就写哪个容器 ID。进来以后 LS-L,看是查看根目录下面有哪些内容,LS-l tempt 是查看容器内的或者 docker 内的 cent OS 精简版的容器,看不透目录下面有那些,这时退出。

image.png

执行意思是第一场要做事,要进到容器里面再去做,例如刚才做的事是进入容器,LS-LXX 这一条指令,这种指令是 EXEC,在外面就执行在哪个指令里面执行,执行下一个要执行意思是对容器在宿主机外面就对容器进行操作,大家看 LS-LTE,attach,是进去到根目录下面,是默认的登陆的路径,而是执行针对容器,拿一个命令进去执行,想要直接出结果,这时请看,与前面操作是一样,而且好处是根本就没有进去,相当于隔山打牛,进到了容器里,做了这么一件事,直接拿出来,结果返回给宿主机,这两个的区别在这。请看:

image.pngimage.png

EXEC 的功能表 attach 强,attach 进去要做,进去以后,再进去做,但是 EXEC 是进去做可随意进去,以后在外面做直接拿结果也可以。

image.png

所以在这里可以看到,然后 attach 和 EXEC 两个的区别,直接进入容器启动命令,终端不会启动新的进程。但是在容器中,还在外面,在容器中就打开新的终端,并且可以启动新的进程号,刚才的演示既可以进去干,例如现在通过 FCC 进来了,LS-L。如图:

image.png

如图:

image.png

现在就是 content ID,根据刚才所讲,docker EXEC-it 要运行此代码,然后假设 ls-l/tmp。

这时相当于在宿主欺诈。在外面对容器进行远程操作,执行这一个命令,直接得到结果,还有一种,

image.png

直接进来,这种情况下就有点像我们的 APP,进去以后再干活,LS-L。在外面容器外面执行,在宿主机容器,执行命令获得了结果,而这种命令还是 EXEC, Attach进入到的 bale 命令函下,终端提示下,进去以后在干活,exec 功能要比 touch 强大,因为它可以在外面,可以远程操控直接获得结果。这是两种进入退出以后进入 docker 容器的方法

从容器内拷贝文件到主机上,言下之意鲸鱼背上的集装箱产生了一些数据,但是要明白,为什么会有数据呢?

如果现在 exec 了以后 Docker PS 就有可能会停止,这时停了以后,假设现在docker stop,把容器给停了,容器内产生的数据就没有了,但是有时候需要容器内的数据能够持久化,先把它保留下来,例如现在容器里面跑了个 right just,有三条记录很重要,但是现在就不想要容器,要把容器关了,有点类似于把集装箱要从鲸鱼背上卸载下来。

image.png

但是当时产生的数据想要留着,这时候怎么办呢?要完成容器内的数据拷贝到主机上面,让主机留着,大海里面留着,这时 Copy up 看 CP 命令 Linux 有Top 命令Linux ,docker 也是一样。前面加 docker 就完成了。

image.png

命令活着的容器是如图,我们看当前宿主机是在 root 路径下面。说过了可以重新进入当前正在运行的容器,然后进去,进去了以后如图

image.png

假设现在就在 temp 的路径下面,但是现在本来进去的时候是不是应该是在根目录下面,例如进去 temp 路径下面。看这有个 yum.log 

image.png

想将其拷贝到宿主机的入册目录下面,请看这时 docker 绕的是容器 ID。docker 借冒号容器 ID 里面的字符,路径下 root 当然如果想改名,例如 ABC 可以,这时回撤

image.png

这是刚刚拷贝的,前面可以对比123,公共的三个字上面是根本没有 log,但是这是从哪来的?

是从容器里面拷贝进来的,是相关的容器命令,注意这里有个英文小冒号。

总结一下,当然这些命令足以覆盖日常工作,在公司用的这时也就这些命令也差不多,但是,如果超出讲的范围了,这时不要着急,常用命令给大家做了总结:

Docker rich kills top 有些讲了,有些没讲,inspecttop,这些 arm 执行命令,有一些后面讲,例如在 history 这些镜像的命令,这些是容器内的命令,还有docker  file 等。

小总结:

image.png

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
387 124
|
2月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
504 5
|
2月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
237 6
|
2月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
530 4
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
364 56
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
895 1