转载请注明源出处: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。

docker学习(2)--基础命令的更多相关文章

  1. Docker 学习记录(基础命令)

    1. 获取镜像 docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]  ===>   docker pull ubuntu:16:04 2.运 ...

  2. [转帖]Docker学习之Dockerfile命令详解

    Docker学习之Dockerfile命令详解 https://it.baiked.com/system/docker/2436.html 图挺好的 前言 之前,制作镜像的伪姿势搭建已经见过了,今天介 ...

  3. 学习 git基础命令

    缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...

  4. docker学习(1)--基础概念

    转载请注明源文章出处:http://www.cnblogs.com/lighten/p/6841677.html 1.前言 docker的官网:这里.下一段摘自官网描述. docker是世界领先的软件 ...

  5. Docker容器技术-基础命令

    一.基础命令 1.运行一个镜像 [root@bogon ~]# docker run debian echo "Hello World" Unable to find image ...

  6. docker系列之基础命令-1

    1.docker基础命令 docker images 显示镜像列表 docker ps 显示容器列表 docker run IMAGE_ID 指定镜像, 运行一个容器 docker start/sto ...

  7. linux学习之——基础命令

    Linux体系基础命令: Linux是一个命令行组成的操作体系!精华在命令行,岂论图形界面成长到什么水平这个原理是不会变的,Linux命令有许多壮大的效用:从简单的磁盘操作.文件存取.到举办庞大的多媒 ...

  8. Docker虚拟化之<基础命令>

    1.在docker hub中搜索镜像 docker search nginx 2.从docker镜像服务器拉取指定镜像或者库镜像 docker pull docker.io/nginx 3.列出系统当 ...

  9. Docker安装及基础命令

    一.docker安装 1.安装docker #关闭防火墙和selinux systemctl stop firewalld.service setenforce 0  ​ #安装依赖包 yum ins ...

随机推荐

  1. Part 4 - Authentication(14-16)

    from django.conf.urls import url from django.contrib import admin from django.contrib.auth import vi ...

  2. linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用

    本节目标: exec替换进程映像 exec关联函数组(execl.execlp.execle.execv.execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程 ...

  3. python按行读取并替换

      fp = open(''test2.txt','w') #打开你要写得文件test2.txt lines = open('test1.txt').readlines() #打开文件,读入每一行 f ...

  4. Java解决高并发方案(帮助你我他)

           一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站 ...

  5. 百度上传插件 WebUploader初始使用

    引入资源 使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF. <!--引入CSS--> <link rel="stylesheet" ...

  6. codevs 1012

    题目描述 Description 给出n和n个整数,希望你从小到大给他们排序 输入描述 Input Description 第一行一个正整数n 第二行n个用空格隔开的整数 输出描述 Output De ...

  7. hdu 1348 凸包模板

    http://acm.hdu.edu.cn/showproblem.php?pid=1348 造城墙问题,求出凸包加上一圈圆的周长即可 凸包模板题 #include <cstdio> #i ...

  8. Delphi 动态与静态调用DLL(最好的资料)

    摘要:本文阐述了 Windows 环境下动态链接库的概念和特点,对静态调用和动态调用两种调用方式作出了比较,并给出了 Delphi 中应用动态链接库的实例. 一.动态链接库的概念    动态链接库(  ...

  9. TFS 如何強制撤銷被簽出的文件

    我们在使用TFS (Team Foundation Server) 源代码管理的时候,源代码管理会在每个PC上创建一个工作区,然后这个工作区域映像到服务器上的源码文件夹,我们在正常签入,签出的时候,我 ...

  10. jenkins常用插件汇总

    jenkins常用插件汇总: Build-timeout Plugin:任务构建超时插件 Naginator Plugin:任务重试插件 Build User Vars Plugin:用户变量获取插件 ...