阿里云部署Docker(3)----指令学习

来源:互联网 发布:2017软件行业寒冬 编辑:程序博客网 时间:2024/05/20 22:40

通过上两节的学习http://blog.csdn.net/minimicall/article/details/40119177 和http://blog.csdn.net/minimicall/article/details/40108305 相信大家已经把docker环境已经搭建完毕,这一节,简单学习docker怎么用。

Hello world

计算机的每一个新事物似乎都是从hello world开始。

root@iZ28ikebrg6Z:~# docker run ubuntu:14.04 /bin/echo 'hello world'hello worldroot@iZ28ikebrg6Z:~# docker run ubuntu /bin/echo 'hello world'hello world
我们之前执行过docker pull ubuntu, 所以我们从远端服务器拉取了不少ubuntu镜像,这些镜像已经存在在本地,不会再去远端服务器拉取,如果你运行的是本地没有的,docker会自动的去远端库查询和拉取。例如 :

root@iZ28ikebrg6Z:~# docker run centos /bin/echo 'hello world'Unable to find image 'centos' locallyPulling repository centos

上述ubuntu是一个镜像,作为一个容器,然后我们进一步运行容器内的APP,即/bin/echo程序。而当执行完echo指令之后,容器内的程序停止了,容器本身也就停止了。记住这个hello world 涉及到点概念,docker ,image, container ,application 。你懂了么?

An Interactive Container

一个可以交互的容器。我们输入如下命令:

root@iZ28ikebrg6Z:~# docker run -i -t ubuntu:14.04 /bin/bashroot@95d20e5442f9:/# 
多了两个参数,一个是 -t ,表示给我们的容器tty,终端。一个是-i 表示可以interactive,可以交互。细心看结果,上面一行还在我们的阿里云机子上iZ28ikebrg6z下一行已经进入到docker ubuntu:14.04镜像映射出的容器里面了,95d2e5442f9中。

你可以在这个bash里面执行一些操作。

root@95d20e5442f9:/# pwd/root@95d20e5442f9:/# lsbin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

如果你想退出这个bash,那么可以运行:

root@95d20e5442f9:/# exitexitroot@iZ28ikebrg6Z:~# 
这样即退出了bash,当然容器也就退出了。

A Daemonized Hello world

守候进程化,即后台化。

执行如下命令:

root@iZ28ikebrg6Z:~# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"d8eca97420317ae9f2fcd7655ab5c16c964d60f7bd644a8726ce473b075852d8
 -d 选项就是告诉docker,这个容器需要后台化。但是,为什么输出是一串看不懂的字符串,而不是每秒输出一次hello world呢?

这一长串东西叫做容器的ID,我们可以通过它使用容器。

root@iZ28ikebrg6Z:~# docker psCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMESd8eca9742031        ubuntu:14.04        "/bin/sh -c 'while t   3 minutes ago       Up 3 minutes                            mad_jones    

看到了吧,我们刚刚那个容器被列出来了。最后一列是名字,什么意思,docker都是一层层的增加的,具体后面细说,你执行一条命令,对你使用的镜像是没有影响的,但是你执行了毕竟是有数据或者其他的东西发生了变化,这个时候,docker给你自动取个名字(你可以指定名字),然后通过这个名字,就像一个新的镜像一样,后面你可以保存它。

打印日志:

root@iZ28ikebrg6Z:~# docker logs mad_joneshello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
停止任务:

root@iZ28ikebrg6Z:~# docker psCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMESd8eca9742031        ubuntu:14.04        "/bin/sh -c 'while t   43 minutes ago      Up 43 minutes                           mad_jones           root@iZ28ikebrg6Z:~# docker stop mad_jonesmad_jonesroot@iZ28ikebrg6Z:~# docker psCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMESroot@iZ28ikebrg6Z:~# 


好了,hello world就到次结束。后续推出更加高级的教程。






0 0
原创粉丝点击