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. Java 执行

    java -cp****.jar ****.****.className [args] linux 下 -cp 参数使用 : 分割 一般都是 .:lib/* windows 下使用 ; 分割

  2. 2019牛客暑期多校训练营(第八场)A:All-one Matrices(广告牌问题 单调队列)

    题意:给出N*M的01矩阵,求矩阵个数,满足矩阵内全是‘1’,,而且被至少一个’0‘围住.(假设边界外是‘0’.(N,M<3000) 思路:这类问题,一般解决就是两个方向: A:压缩一维,即枚举 ...

  3. 将公式直接转化为Latex代码的神器-snip

    经常用latex写论文,免不了要敲各种公式,今天和大家分享一个神器-snip,它可以直接将公式转化为代码,不需要我们自己编写公式代码,方便快捷,准确率极高.该神器的下载地址为:https://math ...

  4. 浏览器渲染详细过程:重绘、重排和 composite 只是冰山一角

    https://juejin.im/entry/590801780ce46300617c89b8 渲染 这张很经典的图许多人都看过,其中的概念大家应该都很熟悉,也就是这么几个步骤:js修改dom结构或 ...

  5. (3)使用Android手机作为树莓派的屏幕

    https://jingyan.baidu.com/album/676629977483b154d51b848e.html

  6. jquery 获取 新添加元素 点击后 的子元素

    $("body").on("click", '.tabletr1', (event) => { debugger var ID2 = $(event.ta ...

  7. zabbix_server [22842]: cannot open log: cannot create semaphore set: [28] No space left on device

    zabbix server服务没启动,查看日志显示 zabbix_server [22842]: cannot open log: cannot create semaphore set: [28] ...

  8. thymeleaf做if判定

    <div class="showing"> <h2>条件判断</h2> <p th:if="${testBoolean}&quo ...

  9. 怎么把ubuntu升级到最新版本

    首先是Ctrl+Alt+T 打开终端,然后在终端中输入指令(更新资源) sudo apt-get update 接着是对软件进行升级.(这是一个漫长的过程,需要下载资源) sudo apt-get u ...

  10. LINUX下的gdb调试方法

    首先对目标文件进行编译 例如: gcc test.c -o test 这时会生成一个文件test,然后我们就可以对test进行调试了 示例: gdb test 好了以后是设定断点 示例: break ...