zoukankan      html  css  js  c++  java
  • Docker之容器

    简单介绍

    之前Docker环境已经配置完成了,也跑了一个叫做“Hello World”的镜像,算是稀里糊涂的跑了一下,现在就来简单说下这个是什么意思。Docker在容器内运行应用程序。在一个容器内运行一个应用程序需要一个命令:docker run。

    实际操作

    1、之前指令使用的是:

    sudo docker run hello-world

    这里使用了 docker run 组合指令进行一个镜像的运行。如果本地没有此镜像就会从镜像仓库Docker Hub下载公共镜像。


    结果

    结果跑出来,这个容器也就结束运行了。

    2、使用新指令:

    sudo docker run ubuntu:18.04 /bin/echo 'Hello world'

    先指定docker的指令为run,然后指定一个镜像:ubuntu 18.04。这是我们容器中运行的来源。docker称这个为镜像。在本例中,我们使用一个Ubuntu 18.04操作系统镜像。接下来,docker在新容器内运行什么命令:

    /bin/echo 'Hello world'


    运行结果

    Docker容器当你输入指令时被激活运行,但只要"Hello word"被输出,容器就会停止。

    3、查看镜像:

    docker images -a


    镜像列表

    这里就是有两个刚才运行的两个镜像。

    4、交互式的容器:

    sudo docker run -t -i ubuntu:18.04 /bin/bash

    在这里继续指定docker run命令,并运行一个新的ubuntu:18.04的镜像,因为之前已经pull了这个镜像,所以此次容器运行很快。但是也加了两个新的标示:-t和-i。-t表示在新容器内指定一个伪终端或终端,-i表示允许我们对容器内的STDIN进行交互。在容器内还指定了一个新的命令:

    /bin/bash。

    这将在容器内启动bash shell,所以现在当我们的容器启动时我们会看到,我们有一个命令提示符:


    运行结果

    可以进行一些指令的运行。


    结果

    使用pwd查看了路径,并使用exit退出。与我们之前的容器一样,一旦你的Bash shell退出之后,你的容器就停止了。

    5、守护进程Hello world

    创建一个容器,让它以守护进程的模式运行,就像docker运行应用程序那样,使用指令:

    sudo docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    这里并没有“hello world”内容打印出来,运行docker但是我们指定了一个-d标识。-d标识告诉docker运行容器在后台模式运行。也指定了一个相同的镜像:ubuntu:18.04,最终指定命令行运行:

    /bin/sh -c "while true; do echo hello world; sleep 1; done"

    只输入一串字符串:


    运行结果

    这个长的字符串叫做容器ID。它是容器的唯一标识,所以可以使用它。

    注意:容器ID是有点长并且非常的笨拙,稍后我们会看到一个断点的ID,某些方面来说它是容器ID的简化版。

    要确保容器正在运行。我们可以使用docker ps命令来查看。docker ps命令可以查询docker进程的所有容器。


    查看结果

    april_chou@aprilchou-450R5V:/usr/share/gnome-shell/theme$ sudo docker ps

    CONTAINER ID        IMAGE              COMMAND                  CREATED            STATUS              PORTS              NAMES

    b5c18f4802e1        ubuntu:18.04        "/bin/sh -c 'while..."  34 seconds ago      Up 31 seconds                          nostalgic_hoover

    这里看到了后台进程容器。docker ps命令会返回一些有用的信息,这里包括一个短的容器ID:b5c18f4802e1。

    我们还可以看到我们使用的ubuntu:18.04来构建它,这个命令已经运行,它被系统自动分配了名称nostalgic_hoover。

    注意:docker会在容器启动的时候自动给容器命名。

    在容器内使用docker logs命令。让给系统自动分配名称的容器使用这个命令。


    日志

    6、停止这个后台进程容器,使用命令停止:

    docker stop nostalgic_hoover


    停止

    docker stop命令会通知docker停止正在运行的容器。如果它成功了,它将返回刚刚停止的容器名称。再次通过docker ps命令来检查它是否还工作。


    查询结果

    已经没有运行中的容器,完成。

    参考:

    在Docker中运行"hello Word"应用

  • 相关阅读:
    JNI中java类型的简写
    JNI 资源释放
    【翻译自mos文章】当指定asm disk 为FRA时,11.2.0.3的dbua hang住
    Codeforces 85D Sum of Medians(线段树)
    Win8.1应用开发之异步编程
    VC++的内联汇编
    WPF实现界面动态布局
    找唯一不出现三次而出现1次的数子O(n)位运算算法
    模块管理常规功能自己定义系统的设计与实现(31--第三阶段 权限设计[1])
    Codeforces Round #FF (Div. 2):C. DZY Loves Sequences
  • 原文地址:https://www.cnblogs.com/April-Chou-HelloWorld/p/9142773.html
Copyright © 2011-2022 走看看