初学者的Docker入门3 – 容器的基本操作

由于在之前的两次会议中已经了解了Docker的概要,所以这一次我们将使用Docker Engine来进行有关容器基本操作的输出。

前提 – Qian2 ti2

我正在尝试在以下环境中进行容器的基本操作。

    Mac book Pro(OS X El Capitan)
    Docker for Mac(1.12.0-rc4)

容器的生命周期

以下是容器的生命周期,对于Docker中的容器生命周期可能更容易理解。(我无法自行提供生命周期示意图…)

Docker镜像是什么?

基于容器的操作系统、目录、文件、配置等的整合体称为Docker镜像。可以通过从容器创建或者通过Dockerfile编写代码并进行构建来创建Docker镜像。

创建容器 – docker create

要创建容器,需要使用”docker create”命令。
指定要基于的Docker镜像来创建新容器。
在执行”doker create”命令时,只是创建了容器,但它仍然处于停止状态。

# 使い方:docker create [オプション] イメージ [コマンド] [引数...]

# 実行例
$ docker create -i -t --name centos centos:centos6 /bin/bash

# 実行結果(コンテナIDが表示される)
$ 0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqr

在实例中,基于centos6镜像创建了一个名为”centos”的容器。
此外,作为选项,在容器启动时指定了执行命令”/bin/bash”以及选项”-i”和”-t”。

使用中的选项内容如下所示。

オプション 内容 -i アタッチしていなくても、STDINを開き続ける。 -t 疑似ターミナル(pseudo-TTY)を割り当てる。   –name コンテナに名前を割り当てる。

如果要连接到容器并进行操作,需要指定选项“-i”和“-t”。

在Docker中,当指定的命令执行完毕后,容器会停止,这是原因。

因此,如果像示例一样在命令中指定”/bin/bash”,如果不指定”-i”和”-t”选项,命令会立即执行完毕,但如果指定了”-i”选项,bash会持续等待STDIN,从而使容器持续运行。
此外,通过指定”-t”选项,可以在连接到容器时显示终端。

用这个命令将终端显示在容器连接时,你可以执行类似于Linux标准命令 “cd” 和 “ls” 等工作,因为STDIN也已经打开,可以输入命令。

启动容器 – docker start

要启动指定的一个或多个容器,您可以使用”docker start”命令。

# 使い方:docker start [オプション] コンテナ [コマンド...]

# 実行例
$ docker start -i centos

# 実行結果
[root@0123456789ab /]#

以实际示例为例,启动一个名为”centos”的容器,并附加到 STDIN 上。
正在连接到容器。

所使用的选项内容如下所示。

オプション 内容 -i コンテナのSTDINにアタッチ

运行容器-运行docker

要执行容器,需要使用”docker run”命令。
从基本的Docker镜像创建并启动容器。

以一组指令完成”docker create”和”docker start”的动作。

# 使い方:docker run [オプション] イメージ [コマンド] [引数...]

# 実行例
$ docker run -i -t --name centos centos:centos6 /bin/bash

# 実行結果
[root@0123456789ab /]#

在上述示例中,与 “docker create” 相同,它以 centos6 的映像为基础创建了名为 “centos” 的容器,并启动容器。容器启动后,连接到容器并显示终端。所使用的选项与 “docker create” 相同。

如果不需要连接到容器并且希望在后台运行,则可以使用选项“-d”。

オプション 内容 -d コンテナをバックグラウンドで実行し、コンテナ ID を表示。

停止容器 – 停止 Docker

要停止正在运行的容器,需要执行”docker stop”命令。

# 使い方:docker stop [オプション] コンテナ [コンテナ...]

# 実行例
$ docker stop centos

# 実行結果(停止したコンテナを表示)
centos

在上述执行示例中,停止了一个名为”centos”的正在运行的容器。

删除容器 – docker rm

要删除容器,需要运行「docker rm」命令。

# 使い方:docker rm [オプション] コンテナ [コンテナ...]

# 実行例
$ docker rm centos

# 実行結果(削除したコンテナを表示)
centos

要删除容器,需先停止容器,上述示例中成功删除名为”centos”的容器。

如果想要强制删除正在运行的容器,可以使用选项“-f”。

オプション 内容 -f 実行中のコンテナを(SIGKILLを使い)強制的に削除。

显示容器信息 – docker ps

要显示存在的容器信息,需要执行“docker ps”命令。

# 使い方:docker ps [オプション]

# 実行例
$ docker ps -a

# 実行結果
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
0123456789ab        centos:centos6      "/bin/bash"         1 minutes ago       Exited (0) 1 seconds ago                           centos

如果使用选项”-a”,会显示停止的容器的信息。如果不指定,则只显示正在运行的容器的信息。

以下是所使用选项的内容。

オプション 内容 -a 全てのコンテナを表示 (デフォルトは実行中コンテナのみ表示)

展示Docker镜像列表 – docker images

要显示Docker镜像清单,请执行命令「docker images」。

# 使い方:docker images [オプション] [リポジトリ[:タグ]]

# 実行例
$ docker images

# 実行結果
REPOSITORY     TAG        IMAGE ID       CREATED        SIZE
centos         centos6    012345689ab    7 weeks ago    194.6 MB

通过指定图像,可以显示想要确认的图像信息,就像上述示例中显示的已获取图像的列表一样。

删除Docker镜像 – docker rmi

要删除获取的Docker镜像,需要执行”docker rmi”命令。

# 使い方:docker rmi [オプション] イメージ [イメージ...]

# 実行例
$ docker rmi centos:centos6

# 実行結果
Untagged: centos:centos6
Deleted: sha256:0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqr

在上述示例中,它删除了标签为”centos6″的名为”centos”的镜像。

请参考以下网址

Docker文档日本化项目 – Docker指令

下次

我想利用容器来创建一个简单的系统。

bannerAds