Docker之二--容器中的Hello world,网页应用
Docker到底在干么?
Docker允许你在容器中去运行程序,创建自己的世界。所以请使用docker run。
注意:Docker的一些命令是需要管理员权限的,也就是说前面需要添加 sudo才能执行的,为了避免每次都要输入sudo,你可以创建一个名为docker的组然后往里面添加用户。
执行Hello World
在终端中输入一下命令:
$ docker run ubuntu /bin/echo 'Hello world'
Hello world
你启动了自己的第一个程序。
运行一个交互的容器
$ docker run -t -i ubuntu /bin/bash
root@af8bae53bdd3:/#
-t :该标志在容器内分配一个pseudo或者终端pseudo-tty
-i:该标志允许你通过容器的标准输入【STDIN】来创建创建一个交互的连接
容器启动,如下:
root@af8bae53bdd3:/#
试试一些linux下的命令吧!
退出的话,用
exit
或者快捷键Ctrl+d。
注意,一旦Bash shell进程结束之后,这个容器也就停止运行.
Start a daemonized Hello world
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147
在这个命令中:
docker run 运行这个容器
-d 标志让容器在后台运行(让它成为守护程序)(to daemonize it).
ubtntu 是你想要去运行的镜像
最后我们指定了要运行的命令
/bin/sh -c "while true; do echo hello world; sleep 1; done"
在终端的输出中,我们看到了:
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147
这串长长的字符串是容器ID,它唯一确定了一个容器。
注意:容器ID有点长而且很笨拙。之后,我们会使用简短的ID或者命名容器来使得容器更加容易使用。
我们可以使用容器ID去看看hello world 这个守护进程在干么。
首先,我们要确保容器实在运行的。用docker run 查看当前运行的Docker daemon。
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1e5535038e28 ubuntu /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage
1e5535038e28 是容器ID的简短变体
ubuntu是使用的镜像
注意:Docker会自动已经开始运行的容器生成名字。之后会将带如何自己去自定义名字。
现在,我们知道容器有在运行了,但是它真的执行了我们想要去执行的内容么?可以查看输出日志。
docker logs insane_babbage
$ docker logs insane_babbage
hello world
hello world
hello world
. . .
docker logs查看了容器,然后返回了 hello world
Oyeah,这个daemon已经在工作。我们创建了自己的Dockerized application!
接下来我们使用
docker stop
去停止该容器。
$ docker stop insane_babbageinsane_babbage
docker stop
告诉Dockers要停止容器的运行,然后返回了这个容器的名字。
用docker ps检查一下。确实是关闭了。
```
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
```