zoukankan      html  css  js  c++  java
  • docker(3)容器管理命令

    接着上一篇,今天说一下Docker 有关容器的常用命令。算是比较详细了吧。

    docker run  命令:

    注:此命令作用是使用一个镜像运行启动一个容器。 在启动运行的时候 会检查docker 中是否包含了该镜像 如果没有包含 ,docker 会自动的在 docker 的仓库中下载你想使用的镜像。也就是说有时候咱们可以省略:Doker  pull 命令。

    Docker run 命令常用的参数

      1:--name 【镜像名】 :

      --name 给启动的容器 起一个名字,如果不使用 –name   docker的守护进程会自动给你的容器命名,这里建议使用此参数,docker进程起的名太难记了

      2:-d 

           如果想启动一个在后台运行的容器的时候执行以下命令:可以启动一个容器并且后台运行 可以创建一个守护式容器。

      

      可以对比一下名字

      3:-t docker 会 分配一个伪终端并绑定到容器的标准输入上,

      4:-i则让容器的标准输入保持打开,使用的时候可以两个结合为

      5:– it 上面两个的结合

      演示一下使用不使用 – it 作用:

      Docker run – name centos    centos /bin/bash

      Docker run – name centos -it   centos /bin/bash

      

      注:一个运行后直接闪退了,并且不会保持与运行,加上-it 后运行我们会直接进入容器中,但是会在退出容器后停止容器。

      有关docker run 的参数就先说这几个,在后续文会继续增加。

     查看容器命令

      1:Docker ps    查看运行中的容器

      

      我们可以看到 容器的ID,名称,运行时间 端口等信息

      2:Docker ps -a  查看所有运行中的和为运行的

      

      3:Docker ps -l       可以查看你最后一个运行的容器

      

    容器的删除命令

      1:Docker rm

      删除 ID/名称 为某某的容器 (未运行的)

      2:Docker rm  `docker ps -a -q`

      批量删除未运行的容器

      3:Docker rm -f                     

      强制删除运行中的容器

      4:Docker rm -f `docker ps -a -q`

      批量强制删除运行中的容器

          删除就不演示了,但是后面的两个坚决不推荐使用(就怕删错了谨慎为上)

    容器的启动/停止命令:

      1:停止命令

       Docker stop

            Docker kill

      这两个都可以停止容器

      区别:

      stop 发送一个命令等待容器停止: 有等待时间

      Kill   直接停止容器:没等待时间

      2:启动命令

      Docker start    ID/名称  启动一个未运行(已停止)的容器

      Docker start -i  ID/名称  以交互的方式启动容器(直接会进入容器)

      这个就不演示了,在使用-I 的时候不是每次都会成功的会卡住。这点注意了

    容器的退出命令

      1:exit

      2:ctrl+d        退出和exit 效果一样。

      3:ctrl+p ctrl+q  这种组合的退出方式只适用与交互式容器

       以上三个命令是在容器中使用的

      

    正确的进入容器

      1:Docker attach  ID/名称   注:退出后会停止容器

      可以进入一个正在运行的容器中。需要注意的是 Docker attach  这个命令是由缺陷的,很早就有了,有时候我们想进入一个容器中的时候 卡住了,但不是没次都会卡主有时候会有时候不会

      比如:运行一个consul镜像

      docker run  -d -P  --name consul   docker.io/consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -client=0.0.0.0   -datacenter=dc1

      查看结果:确保容器运行中

      进入容器结果:

      

      卡在这了不会动了,取消之后还会 停止正在运行的容器尴尬不。

      2:启动时进入容器。 在docker run 已经使用   注:退出后会停止容器

      

      3:第三种是生产的时候推荐使用的  (退出后容器不会登出)

      我们使用PID进入容器查看容器的PID 两种方法

      docker inspect -f {{.State.Pid}}  nginx

      docker top nginx

           结果:

      

      进入容器:使用nsenter  我的centos 自带此命令,没有的可以安装一下。

      nsenter --target 10692  --uts --ipc --net --pid

      

       推出容器: Ctrl +d

           查看容器的运行状态:docker ps

      

      退出后容器不会登出,这种方式生产建议使用:

     查看容器的日志

      docker logs   id/名称

      Logs 选项大致分为三个:

                         -t               显示容器的日志信息

                         -f               显示容器的日志信息并带上时间

                         --tail  数字参数    显示容器的所有日志信息

      比如:我们运行一个centos 的容器 并循环输出 hello word

      如下图:

      

      查看日志:docker logs contos2 或者 ocker logs -f contos2  手残centos

      

      

      使用命令:docker logs -t contos2 或者 docker logs -ft contos2

      

           

      使用命令:docker logs  --tail 3  contos2 或者 docker logs -t  --tail 3  contos2

       

      注:以上命令只是示范可随意组合使用:

    在容器中启动新的进程

      注:docker 理念一个容器运行一个进程,但是保不齐我们需要对该容器 维护监控等操作。

      新创建一个容器:

      

      查看容器的进程数量

      

      新建并查看进程:

      docker exec -it -d centos4 /bin/bash
      

      这里显示了新的进程信息。

     下一篇记录一下 docker 的网络。

    有不足之处 希望大家指出相互学习,

                本文原创:转载请注明出处 谢谢!

      

  • 相关阅读:
    Python学习之旅—生成器对象的send方法详解
    对集合多列进行求和方法的选择
    23种设计模式
    这一天,我真正的体会到。。。
    火狐浏览器导出EXCEL 表格,文件名乱码问题
    K-fold Train Version3
    K-fold Train Version2
    K-fold Train
    Confusion matrix
    Kaggle Solutions
  • 原文地址:https://www.cnblogs.com/szlblog/p/10612280.html
Copyright © 2011-2022 走看看