1.Hello world in a container

Hello world in a container

1.第一个命令docker run

$ docker run  ubuntu  /bin/echo 'hello world'
hello world

在这个例子中

  • 列表项目

  • docker run 运行了一个 container

  • ubuntu 是一个镜像 ,docker 首先查看镜像的 docker host ,如果这个镜像不存在本地,就回去docker hub 上下载镜像

  • /bin/echo 是运行一个命令在新的container中

这个 container launches.Docker 创建一个新的ubuntu环境 并且执行/bin/echo 命令 和 打印了

hello wrold

那么这个容器以后发生了什么?docker container 仅仅 运行了一个你指定的命令。因此,上面的例子,当命令运行完毕这个container 马上停止

Run an interactive container (运行一个可交互的container)

让我们执行一个新的指令在container 里面

$ docker run -t -i ubuntu /bin/bash
root@a983f07f87c8:/# 

在这个例子中:

  • dcoker run 运行一个 a container ubuntu 它将成为你运行的镜像

  • -t 标志指定一个伪终端 或者 终端 在container 中 (输入)

  • -i 标志允许你去 通过抓取容器里面的标准输出(STDIN)来进行交互(输出)

  • /bin/bash 运行一个bash shll 在我们的container 里面

这个container launhes . 我们能看到一个命令行提示

root@af8bae53bdd3:/#

Start a daemonized Hello world (开始一个守护进程的hello world)

让我们创建一个容器,作为一个守护进程运行。

$docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
86e7f1bc29862651ad4bf341099946710543ba5c7030d87701d53437c3621a47

在这个例子中 :

  • docker run 运行一个container

  • -d flag 在后台运行这个 container

  • ubuntu 是要运行的image

最后,我们指定命令去执行:

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

在这个输出,我们不会看到 hello world ,而是一段很长的字符串

1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147

这个很长的字符串被成为 container ID,他是唯一标识一个容器,所以我们能与它一起工作。

Note:这个Containe ID 是一个 长 并且笨重的id。后面,我们将会用短id 和方法 来命名我们的container,使它们的工作更加简单。

我们能使用 container ID 去看 我们的 hello world daemon 到底发生了什么。

首先,我们 确认我们的container 还在运行,运行 docker run 命令,docker ps 这个命令查询 Docker 守护形式运行的所有container 的相关信息。(command queries the Docker daemon for information about all the containers it knows about.)

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
86e7f1bc2986        ubuntu              "/bin/sh -c 'while tr"   22 minutes ago      Up 22 minutes                           big_lalande

上面的例子中,我们能看到 我们的守护进程形式 container。docker ps 返回了一些有用的信息:

  • 86e7f1bc2986 是一个短 变形 的container ID

  • ubuntu 是被使用的镜像

  • 这个 command ,status 和 assigned(分配的) name big_lalande

Note:Docker 总是自动在container 启动的时候生成名字,我们将会后面看到怎么指定分配你自己的名字。

现在,我们知道 容器是运行的。但是它是做了我们要求它做得了么?我们将会用使用 docker logs 查看container内部的内容。

$docker logs big_lalande
hello world
hello world
hello world
. . .

在上面的例子中:
docker logs 看到了container内部和返回的hello world

Awesome !这个长守护进程 是在工作的 和你刚刚创建了第一个docker化的程序

接下来,运行这个 docker stop 命令去停止我们 独立的container

docker stop big_lalande
big_lalande

docker stop 这个命令 告诉Docker 优雅的关闭正在运行的container 和返回 这个container 名字 并停止它。

让我们用 docker ps 命令检查

$ docker ps
CONTAINER ID  IMAGE         COMMAND               CREATED        STATUS       PORTS NAMES

我们的container 被停止了。

下一步:
到目前位置,你用 docker run 命令启动了你的第一个container。你能运行一个能在前台交互运行的容器。你也能运行一个运行在后台的守护进程形式的容器。在本节中你能学到几个命令:

  • docker ps 列出containers列表

  • docker logs 显示我们 container 的容器的标准输出

  • docker stop 停止运行中的container

Now ,你了解了更多关于docker 的基础,以及一些基本的任务。去“Run a simple application”用Docker client 去 实际构建一个Web应用程序(Go to “Run a simple application“ to actually build a web application with the Docker client.)

原文出处:https://docs.docker.com/engin…

    原文作者:夜店小新新
    原文地址: https://segmentfault.com/a/1190000006170084
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞