zoukankan      html  css  js  c++  java
  • docker学习(2)--基础命令

      转载请注明源出处:http://www.cnblogs.com/lighten/p/6875355.html

    1.基本命令

      搭建好docker环境之后,使用docker help命令查看docker的基本用法: docker COMMAND.

      

      

      

      目前我们较为常使用的是commands下面的指令,如果使用swarm相关功能会用到management commands。目前我使用的是17.03.1-ce,后续版本功能应该会更加细分,可能会替换成management来使用。比如docker images列出所有镜像,和docker image ls的功能是一样的,通常我们习惯使用docker build构建镜像,也可以使用docker image build命令。本文还是介绍commands的相关命令,management的命令更多,熟悉了其实都一样。主旨还是为了学会怎么使用docker,命令不会用就通过docker swarm --help的方式去查看。

    2.命令详解

      命令太多,介绍不完,这里介绍一些使用docker时接触比较频繁的命令。

    2.1 attach

      连接一个运行中的容器。

      

      1.detach-key: 覆盖脱离容器的键序列

      2.no-stdin:不连接STDIN

      3.sig-proxy:代理进程所接收的所有字符,默认true

      attach命令不怎么使用了,被更强大的exec的命令取代了。

      detach-key用法,比如跟上H,连上容器后是bash输入H就可以退出容器,容器也不会停止运行。不加的话原本应该是CTRL+C退出的,但是没有作用,使用exit命令虽然可以退出,但是容器也停止运行了。

      no-stdin不接受任何输入,bash中输入了回车会自动退出,容器不会关闭。

      sig-proxy一般用于连接的容器不是显示bash,比如tomcat的catalina.sh运行,前台展示日志,此时退出容器只能CTRL+C,但这样容器就停止运行了,不是想要的结果,所以使用sig-proxy=false可以解决这个问题。顺带一提,如果是bash,这个是没有作用的,依旧不会退出,执行exit退出容器依旧关闭。

     2.2 build

      使用Dockerfile构建一个镜像

      命令较多,说明一下常用的命令,其它的看意思也能看明白。

      1.--tag  给镜像命名和打标签,格式时name:tag

      2.--rm  构建成功后移除临时容器

      3.--no-cache 构建镜像时不使用缓存

      4.--force-rm  总是移除临时容器(与rm相比失败也移除)

      docker build --tag test .(注意空格后有一个点)

      上面给出的命令涉及docker构建的一个知识点。docker构建是一层一层的,一条指令就是一层,构建完成了之后会运行一个临时容器,不过成功的时候默认是删除的,失败的时候还存在。上面的rm命令就是管理这个的用处。失败存在的容器可以用于调试,docker每构建一层都会缓存起来,下次构建的时候就会使用缓存,这样可以加快构建速度。修改构建文件之后,修改项之前的层都可以使用缓存构建,修改处及之后的都会重新构建,顺便一提如果只是调换两个指令的顺序也不会使用缓存,牢记构建是一层层的,上下两层调换也是完全不一样的,只有从第一层开始完全一致的层才会使用缓存。

    2.3 commit

      通过修改一个容器来构建镜像

      

      1.--author  注明镜像的构建作者

      2.--change  使用Dockerfile指令来创建镜像

      3.--message 提交的信息

      4.--pause   提交时暂停容器(默认true)

      这四个选项很简单明了,但是change用的比较少,一般采取这种方式提交的都不需要再使用Dockerfile指令了。这是第二种生成docker镜像的方式。比如你运行一个centos容器,进入容器安装了vim程序,退出容器执行commit就会生成一个新的带有vim程序的镜像。一般不会采取这种方式构建镜像,除非是无法使用Dockerfile完成构建。这就是为什么change参数使用的比较少的原因,因为这种做法都能进入容器完成操作,也就没必要再使用Dockerfile的命令了。

    2.4 exec

      在一个运行中的容器中执行一个命令

      

      1.--detach     分离模式:在后台运行一个命令

      2.--detach-keys   和上面的attach命令的作用相同,覆写离开容器的键

      3.--env       设置环境变量

      4.--interactive   保持输入流的打开,即时没有连接

      5.--privileged    给命令赋予权限,测试时容器创建的时候没有带这个参数这里设置了好像也不起作用,run命令的时候有才会生效

      6.--tty        分配一个伪终端,通常和-i连用,进入容器

      7.--user      登入用户

      docker exec -it 容器名 /bin/bash

      这个命令使用的比较频繁,其完好的取代了attach命令,可以在容器终端不能输入的时候,比如tomcat前台运行(很多时候是这样,因为如果没有前台程序,容器就会停止运行)。这个时候即时连上容器,也不能对其做什么,退出如果操作不当,还很容易使容器停止运行。exec命令解决了这个问题,上面的那句命令就可以进入容器的终端,输入指令。

    2.5 export、import、save、load

      这四个命令都和docker的迁移有关,如果我们要迁移一个镜像,可以将其上传到docker中心仓库中,在迁移的电脑上再下下来就可以了。但是还有更简单的方法,就是上面的四个指令。export-import是针对容器而言,save-load是针对镜像而言。这两者是有所区别的。

      基本格式是:docker 具体命令 容器/镜像名称或ID。

    2.6 history

      展示一个镜像的历史

      

      1.--human    阅读友好的展示方式,默认为true

      2.--no-trunc    不要缩略输出,一般输出命令那段会有折叠,想看到完整的指令,可以使用这个选项

      3.--quiet     只显示ID

      docker history 镜像名/ID

      这个命令可以看见一个镜像一层层是如何构建的。对镜像的层级构建可以更好的理解

    2.7 images、ps

       展示镜像列表

      

      1.--all    展示所有的镜像(默认隐藏中间镜像)

      2.--digests  显示数字编号

      3.--filter    根据提供的条件过滤输出

      4.--format  使用一个GO模板合适的打印镜像

      5.--no-trunc 不缩略输出内容

      6.--quiet   只显示数字ID

      docker images

      这个命令也是一个常用命令,可以使用其查阅现在仓库中所拥有的镜像。

      

      images是查看镜像的,与之对应的就是ps,用于查看容器的。

    2.8 inspect

      返回一个docker对象的低级别信息

      

      这个命令主要用于查看docker对象的一些基本资料,尝试一下就知道了。

    2.9 login、logout、pull、push、search

      这几个命令都和docker的中央镜像仓库有关,login登入,logout登出。pull拉取镜像不需要登录,push提交需要。search可以用于查看仓库中的镜像列表。

    2.10 rm、rmi、run、start、stop

      这几个命令和docker镜像容器的生命周期有关,rm删除容器,rmi删除镜像,run以镜像为模板新建一个容器运行,没有镜像会先拉去镜像,start启动容器,stop停止容器。

    3.后记

      还有一些命令没有进行介绍,实际上也没必要,英文还可以就可以直接使用help命令来查看命令的解释就可以了。docker命令多用用就会熟练了,主要还是docker的一些基础原理比较重要。下一篇会介绍一下如何编写Dockerfile。

  • 相关阅读:
    《时间的朋友》2017跨年演讲:观后感
    如何实现目标?
    不患贫而患不均
    科学地定目标(附我的目标)
    书单:我的“基本书”
    你只有非常努力,才能看起来毫不费力
    买书?买知识?
    论知识与技能
    【读书笔记】《代码不朽》
    【工作实践】如何创新?
  • 原文地址:https://www.cnblogs.com/lighten/p/6875355.html
Copyright © 2011-2022 走看看