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。

时间: 2024-10-12 16:13:14

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

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

转载请注明源文章出处:http://www.cnblogs.com/lighten/p/6841677.html 1.前言 docker的官网:这里.下一段摘自官网描述. docker是世界领先的软件容器平台.开发人员使用docker可以消除与同事的代码协作时产生的"在我机器上运行是正常的"等问题.运营商使用docker在独立的容器中运行和管理应用程序,以获得更好的计算密度.企业使用docker构建灵活的软件传送通道,可以更快,更安全地运行新功能,并且对于Linux和Windows S

docker简介和基础命令

一.Docker 概述 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护.Docker 自开源后受到广泛的关注和讨论, 以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

Docker介绍及基础命令

什么是Docker? Docker 是一种容器技术,它不依赖任何语言.框架或系统,可以将应用变成一种标准化的.可移植的.自管理的组件,并脱离硬件平台在任何主流系统中开发.调试和运行.docker是一个基于LXC容器技术又对其进行优化升级扩展的管理工具,提供一系列更强的功能,如可移植性.自动化构建(dockerfile).版本控制.镜像管理等. Docker是一个重新定义了程序开发测试.交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是docker提出的"Build onc

docker系列之基础命令-1

1.docker基础命令 docker images 显示镜像列表 docker ps 显示容器列表 docker run IMAGE_ID 指定镜像, 运行一个容器 docker start/stop/pause/unpause/kill/restart CONTAINER_ID 操作容器状态 docker tag IMAGE_ID [REGISTRYHOST/][USERNAME/]NAME[:TAG] 给指定镜像命名 docker pull/push NAME:TAG 下载, 推送镜像到 

linux学习之——基础命令

Linux体系基础命令: Linux是一个命令行组成的操作体系!精华在命令行,岂论图形界面成长到什么水平这个原理是不会变的,Linux命令有许多壮大的效用:从简单的磁盘操作.文件存取.到举办庞大的多媒体图象和流媒体文件的制造. 安设和登录命令:login. shutdown. hwoulsternbyive. rekick out .mount.umount .chsh文件执掌命令:file. mkdir. grep.dd. find. mv .ls .diff. cby. ln体系管理相关命令

学习Samba基础命令详解之大话西游01

服务名:smb 配置目录:/etc/sabma/ 主配置文件:/etc/sabma/smb.conf #============================== Global Settings ============================= 17行workgroup 语法 workgtoup = <工作组群>; 预设 workgroup = MYGROUP 说明 设定 Samba Server 的工作组 例 workgroup = workgroup 和WIN2000S设为一个

SQL学习之一基础命令

一.SQL语法 1.数据库表 一个数据库通常包含一个或多个表.每个表由一个名字标识,表包含带有数据的行. 2.大小写 SQL对大小写不敏感. 3.SQL语句后的分号 某些数据库要求在每条SQL命令的末尾使用分号,比如mysql. 4.SQL的DML和DDL 可以把SQL分为两个部分:DML(data manipulation language数据操作语言)和DDL(data definition language数据定义语言) 查询和更新数据的指令构成了SQL的DML部分: select --

docker学习之--日常命令

1.查看镜像 sudo docker images sudo pull docker.io #下载镜像 sudo push docker.io #上传镜像 sudo docker save -o centos_with_net.tar  镜像Id #把一个镜像保存在本地 sudo docker load <centos_with_net.tar   #把一个镜像上传到docker 2.查看容器 sudo docker ps 或者 sudo docker ps -a (详情信息) 3.创建容器-p

Docker学习记录常用命令

1. docker ps  -a 查看运行中的容器 2. docker images 查看docker镜像 3. docker rm id(容器id)  删除容器(容器id可以通过docker ps查看,容器必须停止后才能删除) 3.1 删除全部的容器 docker rm `docker ps -a -q` 4. docker stop  id(容器id) 停止容器运行 5. docker rmi  id(镜像id) 删除镜像 6. docker pull ubuntu:16.04(镜像名称:版