Docker入门(三)

简介: 上一节中,我们了解到了Docker 的一些基本知识点,它的一些核心概念,Docker的使用安装等。此篇文章我们对 Docker 进行入门讲解

容器内部进程

除了容器的日志,我们也可以查看容器内部运行的进程,为了做到这一点,我们使用docker top命令

62.png

执行命令后,我们看到容器内的所有进程,运行进程的用户,时间,执行指令

容器内部运行进程

在 Docker 1.3 之后,我们可以通过 docker exec 命令在容器内部额外启动新进程。可以在容器内部运行的进程有两种类型:后台任务和交互式任务。后台任务在容器内部运行并且没有交互需求,而交互式任务保持在前台运行。对于需要在容器内部打开的 shell 任务,交互式任务还是很实用的,下面是一个后台任务的例子

63.png


这里的标志 -d 表示是一个后台进程。-d 标志之后,跟的是要在内部创建进程的名字以及要执行的命令,上面的例子会在daemon_dave 之后创建了一个新文件,文件名为/etc/new_configP_file ,通过 docker exec 后台命令,我们可以在正在运行的容器中进行维护、监控以及任务管理。

我们也可以在容器内部打开一个交互式任务,如下

64.png


因此你也可以很直观的看出交互式任务后台任务之间的区别:交互式任务可以进行运行环境的切换,而后台任务一旦运行无法切换,只能进行停止或者开始

上面的-t-i 标志为我们的执行创建了 TTY 并捕捉 STDIN。接着我们指定了要在容器内部运行的名称以及要执行的命令,在上面的例子中,这条命令会在 daemon_dave 容器中创建一个新的 bash 会话,有了这个会话,我们就可以在该容器中运行其他命令了。

tty(终端设备的统称):在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。这些文件赋予了linux同时处理多任务,多窗口切换的能力。

STDIN是标准输入,一般指键盘输入到缓冲区里的东西。

其他还有

stdout(Standardoutput)标准输出

stderr(Standarderror)标准错误

停止守护式进程

要停止守护式进程,需要执行 docker stop命令,例如65.png


也可以停止指定的 containerId,例如

66.png


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

可以使用 docker ps来查看正在运行中的 docker 容器,还有一个很实用的命令 docker ps -n x,该命令会显示最后 x 个容器,不论这些容器是正在运行还是已经停止。

67.jpg


自动重启容器

由于某种错误而导致容器停止运行,可以使用 --restart 命令来重启容器。--restart 会检查容器的退出代码,并据此来决定是否要重启容器。默认的行为是 Docker 不会重启容器。

docker run --restart=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

深入容器

除了使用 docker ps 命令获取正在运行的容器信息,还可以使用 docker inspect 来获取更多的容器信息


668.jpg


下面还有很多信息

我们还可以使用 -f 或者 --format 标志选定查看结果。

删除容器

如果容器已经不在使用,可以使用 docker rm来删除,如下

68.png


目前,还没有办法删除所有的容器,不过可以通过下面的小技巧来删除所有的容器

69.jpg

注意:正在运行的docker 容器是无法删除的,你必须先停止容器的运行,使用 docker stop 或者 docker kill 停止容器,然后才可以删除。

总结

本能文章作为Docker 的入门,主要包括Docker对容器的一些基本用法:

  • 查看Docker 基本信息
  • 如何运行一个容器
  • 给容器命名
  • 重启启动容器
  • 附着容器
  • 创建守护式容器
  • 容器日志
  • 容器内部运行容器
  • 容器停止
  • 自动重启容器
  • 容器删除

下一篇文章我们会介绍使用 Docker 镜像和仓库

            </div>
目录
相关文章
【全是精华】Token的获取和使用-FastApi版
【全是精华】Token的获取和使用-FastApi版
1511 0
|
机器学习/深度学习 存储 人工智能
2024阿里云AI交出答卷,全球领先!
2024阿里云AI交出答卷,全球领先!
688 9
2024阿里云AI交出答卷,全球领先!
|
12月前
|
人工智能 自然语言处理 供应链
《AI引领传统企业:数字化转型与商业创新的破局之路》
在当今时代,AI为传统企业带来数字化转型和商业创新的机遇。通过数据分析、精准决策、业务流程优化、产品服务创新、营销渠道拓展及人才管理,AI助力企业提升效率、降低成本、增强竞争力。企业需转变思维、加大技术投入、培养AI人才,建立适应转型的企业文化,以充分挖掘AI潜力,实现可持续发展。
727 15
|
Windows
修改Windows语言出现“我们无法获取此Windows显示语言”问题怎么办?
本文介绍在Windows 10操作系统中,修改系统的显示语言的方法;并解决在这一过程中,出现的“很抱歉,我们无法获取此Windows显示语言”报错问题~
647 2
修改Windows语言出现“我们无法获取此Windows显示语言”问题怎么办?
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
592 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
传感器 供应链 安全
大数据技术的应用场景
大数据技术的应用场景
|
人工智能 数据挖掘 数据安全/隐私保护
【程序人生】公众号往期回顾如何设置
本文介绍了如何设置微信公众号的往期回顾功能,包括登录公众平台,进入素材管理,创建图文消息,编辑标题、封面和正文,添加往期回顾标签,以及保存和发布。强调了选择合适发布时间、定期更新内容和分析数据以优化策略的重要性。记得在新文章发布时同步推送往期回顾,提升用户对公众号历史内容的了解。
【程序人生】公众号往期回顾如何设置
|
SQL 运维 API
Dataphin(智能数据建设与治理)V3.13版本升级速览
本次发布的V3.13 版本中,Dataphin 不仅提升了易用性,支持了计算任务批量操作(离线集成&实时计算任务)、运维列表查看及批量操作(实例排序、手动任务批量运行、逻辑表任务修改负责人)等功能;也新增了多个特色功能,如:任务传参及灵活调度(跨节点参数)、治理经验沉淀(质量知识库)、资产治理相关对象的跨租户发布(数据标准、安全)、跨集群资源调度、分析平台手工表等,以满足灵活、多样性的业务诉求。
766 2
|
机器学习/深度学习 人工智能 vr&ar
从概念到现实:ChatGPT 和 Midjourney 的设计之旅
从概念到现实:ChatGPT 和 Midjourney 的设计之旅
413 0
|
人工智能 文字识别 开发者
CogVLM智谱AI 新一代多模态大模型发布,魔搭社区最佳实践体验!
继 5 月 18 日推出 VisualGLM-6B 后,智谱AI&清华KEG 潜心打磨,于近日发布并直接开源了更强大的多模态大模型——CogVLM-17B。模型已第一时间发布在魔搭社区,可体验!

热门文章

最新文章