zoukankan      html  css  js  c++  java
  • docker03-常用命令

    1.docker基础命令

    1.1docker启动

    指令:service docker start

     

    1.2查看状态

    指令:service docker status

     

    1.3重启docker

    指令:service docker restart

     

     

    1.4停止docker

    指令:service docker stop

     注意,先停止运行的容器

     

    1.5查看docker版本

    指令:docker version

     

    1.6查看docker信息

    指令:docker info

     

    1.7帮助

    指令:docker help

     

     可以看到Commands(命令)Options(选项)

     

    2.镜像指令

    2.1列出本机所有的镜像

    指令:docker images [选项]

    -a :列出本地所有的镜像(含中间映像层)(镜像相当于是千层饼,docker image列出的是最上层的,加上-a,把里面的也列出来了)

    -q :只显示镜像ID。

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

    --no-trunc :显示完整的镜像信息 (trunc是截取的意思 --no=trunc就是不截取显示完整的)

    REPOSITORY:表示镜像的仓库源

    TAG:镜像的标签(相当于版本号)

    IMAGE ID:镜像ID

    CREATED:镜像创建时间

    SIZE:镜像大小
    同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像,也就是最新版本

     

    2.2查询镜像

    指令:docker search [选项] 镜像名字

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

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

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

    注意,这里search是从dockerhub去查询的,哪怕配置了其他的镜像仓库地址

    NAME:唯一名称

    DEDCRIPTION:描述

    STARS:点赞收藏数量

    AUTOMATED:自动

     

    2.3拉取镜像

    指令:docker pull 镜像名称[:tag]

    不加版本号拉取的是最新的版本

     

    2.4删除镜像

    指令:docker rmi 镜像名称或者id [选项]

    -f 强制删除

     

    2.5删除多个

    指令:docker rmi -f 镜像名1[:TAG] 镜像名2[:TAG]

     

    3.容器命令

    3.1查看容器

    指令:docker ps [选项](不带选项是查看正在运行的日期)

    -a :列出当前所有正在运行的容器+历史上运行过的(没有删除的)
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。
    -q :静默模式,只显示容器编号。
    --no-trunc :不截断输出

     

    3.2创建容器并启动

    d指令:ocker run 镜像名称/id [选项]

    --name="容器新名字": 为容器指定一个名称,若不指定,会随机分配唯一名字;
    -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
    -i:以交互模式运行容器,通常与 -t 同时使用;
    -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    -P: 随机端口映射;
    -p: 指定端口映射,有以下四种格式
       ip:hostPort:containerPort
       ip::containerPort
       hostPort:containerPort
       containerPort

    最后面的NAMES就是容器名称

     

    3.2.1常用的第一种模式-交互模式

    指令:docker run --name 名称 -it  镜像名字/id

     这种启动模式指定了名称(比较好分辨),关键是交互模式启动,且有一个伪终端

     如上图,这样子启动后,就进入了这个容器的交互终端。这里启动的是centos,所以执行ls命令,可以查看容器里面的centos的根目录。

     

    3.7.2常用的第二种模式-守护进程模式

    指令:docker run --name 名称 -d 镜像名称/id

    问题:

    指令命令docker run -d centos:6.8


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

     这样子启动,会一直打印 hello zzyy到控制台,有前台进程在运行,就不会关闭

     

    3.3退出容器

    注意:退出容器不等于停止容器,是两个概念

    1)指令:exit

      容器停止退出

     

    2)指令ctrl+P+Q

      容器不停止退出

     

    3.4进入容器

    1)指令: docker exec -it 容器ID bashShell

    exec 是在容器中打开新的终端,并且可以启动新的进程

    在容器外部就可以执行容器里面的命令

     

    2)指令:docker attach 容器ID

    attach 直接进入容器启动命令的终端,不会启动新的进程

     

    3.5启动容器

    指令:docker start 容器名称/id

     

    3.6重启容器

    指令:docker restart 容器名字/id

     

    3.7停止容器

    指令:docker stop 容器名字/id

     

    3.8强制停止容器

    指令:docker kill 容器名称/id

     

    3.9删除容器

    3.9.1删除单个

    指令:docker rm 容器名称/id

     

     3.9.2删除多个

    指令:docker rm 容器名称/id 容器名称/id

     

    3.10查看日期日志

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

    *   -t 是加入时间戳

    *   -f 跟随最新的日志打印

    *   --tail 数字 显示最后多少条

     

    3.11查看容器内运行的进程

    指令:docker top 日期名称/id

     

    2.12查看容器内详细内容

    指令:docker inspect 容器名称/id

     

    3.12从容器复制文件到主机

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

     

    3.13根据容器创建新的镜像commit

    docker commit提交容器副本使之成为一个新的镜像

    指令:docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

    1)启动一个centos容器

     2)进入容器

    3)查看根目录

    在根目录下创建目录myimages,在myimages目录下创建文件11.txt,写入内容:commit create new images

    4)ctrl+p+q退出容器

    5)执行commit命令

     

     执行成功后,查看镜像,发现新的镜像已经生成了

    6)启动新的镜像并查看

    启动镜像进入容器,查看根目录,发现myimages目录,下面有11.txtx文件,文件内容为之前写入的内容

    说明之前在容器添加了myimages目录和11.txt文件,然后生成新的镜像,它们都保存到新的镜像中了

     

     

  • 相关阅读:
    C#批量附加指定目录下的所有数据库文件到数据库中
    UDP聊天代码发送消息客户端代码
    IE6 中 a:hover 的bug
    HTML 里的 if 条件用法
    How to Implement Ajax in WordPress Themes
    如何顺利的通过高级职称评审(转)
    WEB前端工程师如何做职业规划?(转)
    去掉IE浏览器里的脚本控件提示
    网页的横向滚动条
    Top 10 CSS Table Designs(转)
  • 原文地址:https://www.cnblogs.com/jthr/p/15134490.html
Copyright © 2011-2022 走看看