1.什么是守护式容器

  • 能够长期运行
  • 没有交互式会话
  • 适合运行应用程序和服务

2.以守护形式运行容器

运行交互式容器时以Ctrl+P Ctrl+Q 来退出容器,此时容器还在后台继续运行,我们可以通过docker attach [name] 来重新进入容器

[root@aliyun ~]# docker start -i cjj01
root@4f38551cf3cf:/# // Ctrl+P Ctrl+Q 退出
[root@aliyun ~]#
[root@aliyun ~]# docker ps // 可以查看正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f38551cf3cf ubuntu "/bin/bash" minutes ago Up seconds cjj01
[root@aliyun ~]# docker attach cjj01
root@4f38551cf3cf:/#
  • -t:在新容器内指定一个伪终端或终端。

  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。

3.使用run命令启动守护式容器

[root@aliyun ~]# docker run --name cjj02 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
74fb89116dac4410bd268c92a3c2a9507430c49f3e61795142cad9ffed565837
[root@aliyun ~]# docker logs cjj02 // 查看容器内的标准输出
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
[root@aliyun ~]#

在输出中,我们没有看到期望的"hello world",而是一串长字符

74fb89116dac4410bd268c92a3c2a9507430c49f3e61795142cad9ffed565837

这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。

首先,我们需要确认容器有在运行,可以通过 docker ps 来查看

[root@aliyun ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74fb89116dac ubuntu "/bin/sh -c 'while..." minutes ago Up minutes cjj02

CONTAINER ID:容器ID

NAMES:自动分配的容器名称

4.停止容器

docker stop [容器名]

docker kill [容器名]

[root@aliyun ~]# docker stop cjj02
cjj02

5.查看运行中容器的进程

[root@aliyun ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74fb89116dac ubuntu "/bin/sh -c 'while..." minutes ago Up seconds cjj02
[root@aliyun ~]# docker top cjj02
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/sh -c while true; do echo hello world; sleep ; done
root : ? :: sleep
[root@aliyun ~]#

6.在运行中的容器中启动新的进程

exec 命令

[root@aliyun ~]# docker top cjj02
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/sh -c while true; do echo hello world; sleep ; done
root : ? :: sleep
[root@aliyun ~]# docker exec -i -t cjj02 /bin/bash
root@74fb89116dac:/# // Ctrl+P Ctrl+Q 退出
[root@aliyun ~]# docker top cjj02
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9045                9028                0                   17:38               ?                   00:00:00            /bin/sh -c while true; do echo hello world; sleep 1; done
root                13786               13768               0                   18:56               pts/1               00:00:00            /bin/bash
root                13867               9045                0                   18:57               ?                   00:00:00            sleep 1

Docker守护式容器的更多相关文章

  1. docker守护式容器运行管理

    docker守护式容器适合运行应用程序和服务 以交互方式进入容器  docker run -it centos /bin/bash 以交互方式进入 并设置镜像名称和运行后的主机名称 退出交互式容器并让 ...

  2. Docker守护式容器的创建和登录

    创建守护式容器 如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器(后台运行的容器). 创建(-d)并运行(-i)守护式容器命令如下(容器名称不能重复): docker run -id - ...

  3. Docker 学习基本操作与守护式容器

    Docker 学习基本操作与守护式容器 容器操作 运行容器 docker run --name指定名字 -istdin -ttty虚拟终端 在终端中用 exit 即可退出容器,并结束运行 查看容器 p ...

  4. Docker启动守护式容器

    目录 启动守护式容器 查看容器日志 docker后台运行 查看容器内运行的进程 ​查看容器内部细节 进入正在运行的容器并以命令行交互 重新进入 上述两个区别 从容器内拷贝文件到主机上 启动守护式容器 ...

  5. Docker学习(4) 守护式容器

    守护式容器 stop - 等待信号 kill - 直接干死

  6. Docker镜像和容器

    本节内容: 安装Docker 卸载docker 镜像基本操作 容器基本操作 一.安装Docker Docker 对 Linux 内核版本的最低要求是3.10,如果内核版本低于 3.10 会缺少一些运行 ...

  7. docker入门——管理容器

    除了交互式的容器(interactive container),我们也可以创建长期运行的容器.守护式容器(daemonized container)没有交互式会话,非常适合运行应用程序和服务.大多数时 ...

  8. Docker容器化【Docker镜像与容器相关命令】

    # Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...

  9. docker 入门2 - 容器 【翻译】

    入门,第 2 部分:容器 先决条件 安装的 Docker 版本是 1.13 及以上. 读完 第一部分 用下面的命令快速测试你的环境是否完备: docker run hello-world 概述 现在开 ...

随机推荐

  1. 数字转datetime格式

    原数据:int型 转成年月日 时分秒的形式 source_test['happenTime'] = source_test['happenTime'].map(lambda x:str(x)) sou ...

  2. live555流媒体框架介绍

    LIVE555 Streaming Media This code forms a set of C++ libraries for multimedia streaming, using open ...

  3. 使用python处理selenium中的获取元素属性

    # 获取我的订单元素class属性值 get_class_name = driver.find_element_by_link_text('我的订单').get_attribute('class') ...

  4. 15、Python面向对象基础

    和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制. Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法 ...

  5. wordpress去掉category的另一个方法

    今天ytkah的客户问wordpress网站一直去不掉分类url中的/category/,他说已经按ytkah之前的方法设置了还是不起作用,进入网站后台发现,他们的网站有安装yoast,然后就大概知道 ...

  6. 【转】Web测试中定位bug方法

    在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,进一步了解这个BUG的问题出在那里,是测试人员需要掌握的,可以简单的使用浏览器自带开发者工具.数据库工具配合去排 ...

  7. hive删除数据(转)

    转自:https://www.cnblogs.com/linn/p/6196293.html 按分区删除: ALTER TABLE test1  DROP PARTITION (dt='2016-04 ...

  8. spark调优——Shuffle调优

    在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节m ...

  9. 兰伯特余弦定理(Lambert)

    兰伯特余弦定理(Lambert) 1.漫反射,是投射在粗糙表面上的光向各个方向反射的现象.当一束平行的入射光线射到粗糙的表面时,表面会把光线向着四面八方反射,所以入射线虽然互相平行,由于各点的法线方向 ...

  10. [Inside HotSpot] Xcode编译调试OpenJDK12

    编译 下载brew然后安装hg,freetype,ccache $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent. ...