6. Docker引擎 - 容器中的Hello World
2016-12-28 本文已影响0人
yi_zhe
- 运行Hello World
[root@localhost docker-build]# docker run hub.c.163.com/nce2/ubuntu:16.04 /bin/echo 'Hello world'
Unable to find image 'hub.c.163.com/nce2/ubuntu:16.04' locally
16.04: Pulling from nce2/ubuntu
8a2df099fc1a: Pull complete
09aa8e119200: Pull complete
21a4b8922479: Pull complete
a3ed95caeb02: Pull complete
bd2a9dfe68fa: Pull complete
f132d6d54cc2: Pull complete
099b34b8b564: Pull complete
23afed40f2e5: Pull complete
Digest: sha256:eaf02e1b34718cb73b449e05979c5f7b14b611e8f7293346876dc59c48b4785b
Status: Downloaded newer image for hub.c.163.com/nce2/ubuntu:16.04
Hello world
本例中
docker run 运行一个容器
hub.c.163.com/nce2/ubuntu:16.04 是要运行的镜像
/bin/echo 'Hello world' 是要执行的命令及其参数
当命令运行结束时, 容器就会停止了
- 启动一个交互式的容器
[root@localhost docker-build]# docker run -t -i hub.c.163.com/nce2/ubuntu:16.04 /bin/bash
root@d89df4f2cfbc:/# uname -a
Linux d89df4f2cfbc 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@d89df4f2cfbc:/#
-t 选项在容器中分配一个伪终端
-i 选项通过获取容器的标准输入输出创建一个交互式的连接
- 启动一个守护进程
[root@localhost docker-build]# docker run -d hub.c.163.com/nce2/ubuntu:16.04 /bin/bash -c "while true; do echo hello world; sleep 2;done"
64475ee2c2f1a84c94b4dda5d8027f43e377e15c842b1c4592d4bb3605e4f32f
-d选项使容器在后台运行
打印出来的一串ID就是这个容器的ID, 可以通过docker ps查询
- 使用docker log查询容器内应用的输出
[root@localhost docker-build]# docker logs 64475ee2c2f1a84c94b4d
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
...
- 使用docker stop停止容器
[root@localhost docker-build]# docker stop 64475ee2c2f1a84c94b4d
64475ee2c2f1a84c94b4d