美文网首页
Docker学习之:Container

Docker学习之:Container

作者: __apple | 来源:发表于2018-05-08 22:08 被阅读0次

    我们通过上一节的学习,已经大体了解了镜像,并且通过我们的努力还自己做了一个镜像,最后在运行这个镜像的时候,我们说把它变成一个容器通过docker run运行了它,那么什么是容器呢?我们怎么创建它呢?相信通过这节的学习,你会初步掌握容器的相关知识。。。。。。
    下面给出Image与container的关系

    • 通过Image 创建(copy)
    • 在Image layer之上建立一个container layer(可读写)
    • 类比面向对象:类和实例
    • Image 负责app的存储和分发, Container负责运行app
      废话不多说,先创建一个Container
    -bash-4.2$ docker run apple/hello-world
    hello docker
    

    接下来我们使用docker container ls查看当前的容器

    -bash-4.2$ docker container ls
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    

    我们发现当前没有任何的容器?这是为什么呢?我们刚才不是已经运行一个容器了嘛!这是因为我们在运行完hello-world以后它就退出了,并不是一个常驻内存的进程,小伙伴们这个知识点记住了嘛!那么如果我们非要查看怎么办呢?

    -bash-4.2$ docker container ls -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
    c9143f4b837c        apple/hello-world   "/hello"            3 minutes ago       Exited (0) 3 minutes ago                       brave_joliot
    

    正如上面所示,加个-a就可以了,这个就包括正在运行的与退出的。。。。。。
    上面是一个比较简单的image,下面我们可以在来个复杂点的, 我们用ubuntu这个镜像做个容器,并运行它。

    docker run ubuntu:14.04
    结果是空
    -bash-4.2$ docker container ls -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
    4b3a575c9706        ubuntu:14.04       "/bin/bash"       52 seconds ago      Exited (0) 51 seconds ago                       relaxed_jackson
    c9143f4b837c        apple/hello-world   "/hello"            10 minutes ago      Exited (0) 10 minutes ago                       brave_joliot
    7d28d4169d19        apple/hello-world   "/hello"            3 hours ago         Exited (0) 3 hours ago                          vibrant_cori
    56e64b2e29c9        apple/hello-world   "/hello"            3 hours ago         Exited (0) 3 hours ago                          goofy_dijkstra
    

    我们发现多了一个退出的ubuntu,它提示我们使用,bin/bash执行它,但是我们执行这个bin/bash它也不会常驻内存,那我们怎么办呢?我们使用

    -bash-4.2$ docker run -it ubuntu:14.04
    root@ac295f07bf8c:/# 
    

    这样我们就进入一个交互式的环境当中,我们刚开始说过,这个是在image上面多建的一层,是可读写的,我们试着创建一个文件

    root@ac295f07bf8c:/# touch index.html
    root@ac295f07bf8c:/# ls
    bin  boot  dev  etc  home  index.html  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    这样我们就创建了一个文件,甚至我们可以在这里面安装一些软件,比如

    apt-get update && sudo apt-get install vim
    exit退出容器
    

    在这一节的最后我给大家介绍几个常用的命令,以供大家日后方便操作Docker

    docker container rm CONTAINER ID  # 删除容器
    docker ps -a # 列出当前的退出与没退出的容器
    docker rm CONTAINER ID # 删除容器
    docker images # 列出当前的image
    docker image rm IMAGE ID # 删除image
    docker rmi IMAGE ID # 删除image
    docker container ls -aq # 列出当前的CONTAINER ID
    -bash-4.2$ docker container ls -a | awk {'print$1'} # 列出当前的CONTAINER ID
    docker rm $(docker container ls -aq) # 删除所有的container
    docker rm $(docker container ls -f "status=exited" -q) # 删除已经退出的容器
    

    怎么样,小伙伴们是不是又掌握了一波技能,多加联系,多找快捷键,多偷懒,😄!!!!!!

    相关文章

      网友评论

          本文标题:Docker学习之:Container

          本文链接:https://www.haomeiwen.com/subject/fxxgrftx.html