zoukankan      html  css  js  c++  java
  • Docker守护式容器

    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" 31 minutes ago Up 57 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..."   2 minutes ago       Up 2 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..."   25 minutes ago      Up 12 seconds                           cjj02
    [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                9090                9045                0                   17:39               ?                   00:00:00            sleep 1
    [root@aliyun ~]# 

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

    exec 命令

    [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                9090                9045                0                   17:39               ?                   00:00:00            sleep 1
    [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
  • 相关阅读:
    Flutter 开发环境搭建
    swift 如何控制view的显示与隐藏
    TextView textSize 文字大小
    Android项目增加混淆
    Android EditText 无法换行
    Android 6.0 新特性 整理 资料来自网络
    java线程中的sleep/wait/notify/yield/interrupt方法 整理
    java 抽象类与接口的区别 整理
    android 系统架构
    android handler工作原理
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/11580273.html
Copyright © 2011-2022 走看看