zoukankan      html  css  js  c++  java
  • 阿里云部署Docker(3)----指令学习

    通过上两节的学习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 world
    root@iZ28ikebrg6Z:~# docker run ubuntu /bin/echo 'hello world'
    hello world
    我们之前执行过docker pull ubuntu, 所以我们从远端server拉取了不少ubuntu镜像,这些镜像已经存在在本地。不会再去远端server拉取,假设你执行的是本地没有的。docker会自己主动的去远端库查询和拉取。比如 :

    root@iZ28ikebrg6Z:~# docker run centos /bin/echo 'hello world'
    Unable to find image 'centos' locally
    Pulling 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/bash
    root@95d20e5442f9:/# 
    多了两个參数。一个是 -t 。表示给我们的容器tty,终端。

    一个是-i 表示能够interactive。能够交互。细心看结果,上面一行还在我们的阿里云机子上iZ28ikebrg6z下一行已经进入到docker ubuntu:14.04镜像映射出的容器里面了,95d2e5442f9中。

    你能够在这个bash里面运行一些操作。

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

    假设你想退出这个bash,那么能够执行:

    root@95d20e5442f9:/# exit
    exit
    root@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 ps
    CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
    d8eca9742031        ubuntu:14.04        "/bin/sh -c 'while t   3 minutes ago       Up 3 minutes                            mad_jones    

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

    打印日志:

    root@iZ28ikebrg6Z:~# docker logs mad_jones
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    停止任务:

    root@iZ28ikebrg6Z:~# docker ps
    CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
    d8eca9742031        ubuntu:14.04        "/bin/sh -c 'while t   43 minutes ago      Up 43 minutes                           mad_jones           
    root@iZ28ikebrg6Z:~# docker stop mad_jones
    mad_jones
    root@iZ28ikebrg6Z:~# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    root@iZ28ikebrg6Z:~# 


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






  • 相关阅读:
    ★★★
    ★★
    小狼程序员:工作遐想
    广联达BB了
    计算机网络简单理解
    做个合格的(优秀的)测试开发人员
    开发、测试、测试开发
    8.21
    C++ 选择题总结(回调函数 || 类方法(实例方法)|| )
    深拷贝实现笔记
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7097736.html
Copyright © 2011-2022 走看看