zoukankan      html  css  js  c++  java
  • (05)Docker常用命令

      1、帮助命令

    docker version  #查看版本
    docker info  #查看docker信息
    docker --help  #查看命令及其用法

      2、镜像命令

    docker images  #列出本地主机上的镜像

    ---------------------------------------------------------------

      结果说明:

      REPOSITORY: 镜像的仓库源

      TAG:镜像的标签,同一仓库源可以有多个TAG,代表这个仓库源的不同的版本,我们使用REPOSITORY:TAG来定义不同的镜像。如果不指定一个镜像的版本标签,例如只使用ubantu,docker将默认使用ubantu:latest镜像

      IMAGE ID:镜像ID

      CREATED:镜像创建时间

      SIZE:镜像大小

    ---------------------------------------------------------------

      OPTIONS说明:

      -a:列出本地所有的镜像(含中间映像层)

      -q:只显示镜像ID

      --digests:显示镜像的摘要信息

      --no-trunc:显示完整的镜像信息

    ---------------------------------------------------------------

      演示说明:

    docker search xxx  #查找xxx镜像

     ---------------------------------------------------------------

      OPTIONS说明:

      --no-trunc:显示完整的镜像描述

      -s:列出收藏数不小于指定值的镜像

      --automated:只列出automated build类型的镜像

    ---------------------------------------------------------------

      演示说明:

      该命令是从https://hub.docker.com上搜索的镜像,请看下图

    docker pull xxx[:TAG]  #下载xxx镜像,如果不加TAG等价于:docker pull xxx:latest

    docker rmi -f xxx    #删除镜像,xxx是镜像名或者镜像id,镜像名不加:TAG代表删的时候latest
    docker rmi -f 镜像名1:TAG 镜像名2:TAG    #删除多个镜像
    docker rmi -f $(docker images -qa)    #删除全部镜像

      3、容器命令

      有镜像才能创建容器,这是根本前提。下面从阿里云拉取一个CentOS镜像,即在docker上面跑这个CentOS镜像演示一下。

    docker pull centos

      (1)新建并启动容器

      命令:docker run [OPTIONS] IMAGE [COMMAND][ARG...]

      功能说明:依照镜像新建实例容器(本地有,则新建运行,本地没有,则在远程拉取后新建运行)。

      参数说明:OPTIONS,有些是一个减号,有些是两个减号

      --name="容器新名字":为容器指定一个名字

      -d:后台运行容器,并返回容器ID,也即启动守护式容器

      -i:以交互模式运行容器,通常与-t同时使用

      -t:为容器重新分配一个伪输入终端,通常与-i同时使用(进入输入命令的终端命令行窗口)

      -P:随机端口映射

      -p:指定端口映射,有以下四种格式

      ip:hostPort:containerPort
      ip:containerPort
      hostPort:containerPort
      containerPort

      下面以交互方式启动容器,470671670cac是镜像id,也可以用镜像名称。通常加参数it,暂时不指定名字。发现已经进入了docker中的CentOS

    docker run -it 470671670cac

      指定名字运行:

    docker run -it --name mycentos0116 centos

      下面以守护式启动容器

      说明:后台模式启动容器,用docker ps进行查看,会发现容器已经退出。Docker容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(比如运行top、tail),就会自动退出的。这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx start。但是,这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为他觉得他没事可做了。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。

      (2)列出当前所有正在运行的容器

      命令:docker ps [OPTIONS]

      参数说明:

      -a:列出当前所有正在运行的容器+历史上运行过的

      -l:显示最近创建的容器

      -n:显示最近n个创建的容器(docker ps -n 3:最近3个创建的容器)

      -q:静默模式,只显示容器编号

      --no-trunc:不截断输出

    docker ps

      (3)退出容器

      命令:方法一,exit,容器停止退出;方法二,ctrl+P+Q,容器不停止退出

      在执行exit前,查看一下docker ps,执行后在查看一下

     

      (4)启动容器

      命令:docker start 容器ID或者容器名

      先使用命令查出之前运行过的容器,然后决定启动哪一个。

      (5)重启容器

      命令:docker restart 容器ID或者容器名

      (6)停止容器

      命令:docker stop 容器ID或者容器名

      (7)强制停止容器

      命令:docker kill 容器ID或者容器名

      (8)删除已停止的容器,删除后执行docker ps -a无法找到

      命令:docker rm 容器ID或者容器名。注意:删除容器是rm,删除镜像是rmi

      命令:docker rm -f 容器ID或者容器名。删除没有关闭的容器。相当于先关闭再删除。

      命令:docker rm -f $(docker ps -a -q)或者docker ps -a -q | xargs docker rm。一次性删除多个容器

      (9)查看容器日志

      命令:docker logs -f -t --tail 容器ID

      -t:加入时间戳
      -f:跟随最新的日志打印
      --tail number:显示最后多少条

      执行2秒钟输出一次控制台,前台有相应,后台模式启动容器也不会自我关闭

    docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"

      -t输出时间: 

      -f滚动输出:

     

      --tail 3从最后3次的输出开始

     

      (10)查看容器内运行的进程

      命令:docker top 容器ID

      (11)查看容器内部细节

      命令:docker inspect 容器ID

      (12)进入正在运行的容器,并以命令行交互

      命令:docker attach 容器ID;或者 docker exec -it 容器ID bashShell 

      上述两个区别:attach直接进入容器启动命令的终端(后台启动的不能用,会卡死),不会启动新的进程;exec是在容器中打开新的终端,并且可以启动新的进程。

      看下图,执行ctrl+P+Q退出后,使用不同方式进入:一种进入容器内执行,一种在容器外执行,操作结果是一样的。

      (13)从容器内拷贝文件到主机上

      命令:docker cp 容器ID:容器内路径 目的主机路径

  • 相关阅读:
    SPOJ GSS4 Can you answer these queries IV ——树状数组 并查集
    SPOJ GSS3 Can you answer these queries III ——线段树
    SPOJ GSS2 Can you answer these queries II ——线段树
    SPOJ GSS1 Can you answer these queries I ——线段树
    BZOJ 2178 圆的面积并 ——Simpson积分
    SPOJ CIRU The area of the union of circles ——Simpson积分
    HDU 1724 Ellipse ——Simpson积分
    HDU 1071 The area ——微积分
    HDU 4609 3-idiots ——FFT
    BZOJ 2194 快速傅立叶之二 ——FFT
  • 原文地址:https://www.cnblogs.com/javasl/p/12720573.html
Copyright © 2011-2022 走看看