Docker之容器

2018-06-06  本文已影响8人  M_派森

简单介绍

之前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"应用

上一篇下一篇

猜你喜欢

热点阅读