跳转至

第1章 Docker入门

1.11 在docker中运行Hello World

1.11.1 问题

你已经拥有一台Docker主机,想运行你的第一个容器。你想学习容器的不同生命周期。比如,你想运行一个容器并在其中打印hello world。

1.11.2 解决方案

你已经见过了

docker ps

命令,该命令用于列出所有运行中的容器。

首先,你想启动一个容器。让我们立即开始,执行docker run命令,如下所示。

docker run busybox echo hello world

容器来源于镜像。docker run命令与需要一个参数来指定使用哪个镜像。

1.11.3 讨论

如果列出运行中的容器,你会发现没有容器正在运行。这是因为容器一旦完成了它的工作(输出hello world),就停止了。但是容器并没有完全消失,你可以通过

docker ps -a

命令看到这个容器。

你可以通过

docker rm 8f7089b187e8

命令将这个容器永久删除。该容器使用的镜像已经被下载到了本地,

docker image

命令将会输出这个镜像的信息。

如果任何运行中或者已经停止的容器都没有使用这个镜像,你就可以通过

docker rmi busybox

命令来删除这个镜像。

运行echo命令虽然很有趣,但是获得一个终端会话会更好。要想在容器中运行/bin/bash,你需要使用-t和-i参数来获得一个交互式会话,下面以使用Ubuntu镜像为例进行说明。

docker run -t -i ubuntu:14.04 /bin/bash

你会看到Docker下载的ubuntu:14.04镜像由多个层组成,然后你得到了一个容器中root权限的会话。提示符也显示了这个容器的ID。一旦你推出这个终端,该容器就会停止运行,就像我们前面的hello world例子一样。

1.12 以后台方式运行docker容器

1.12.1 问题

你已经知道如何以交互方式启动一个容器,但是你想以后台方式运行一个服务。

1.12.2 解决方案

使用docker run的-d选项。

运行下面的命令,将会在容器中启动一个简单的基于Python的HTTP服务器。

docker run -d -p 1234:1234 python:2.7 python -m SimpleHTTPServer 1234

1.12.3 讨论

这个-d参数会让容器在后台运行。你可以通过运行exec命令来启动一个bash shell,再次进入到该容器中,如下所示。

docker exec -ti 9d7cebd75dcf /bin/bash

评论