Docker有两个重要的概念,镜像和容器

强烈建议先看一下这篇文章,可以帮助你理解常用命令

理解差不多了再看下面的命令选项事半功倍

镜像操作

获取镜像

$ docker [image] pull NAME [ :TAG]

[image]可加不加,直接输入docker pull xxx:xxx也是可以的

Name是目标镜像的名字

[:TAG]代表镜像的版本号,如果不显示的指定版本,默认拉取latest镜像,是最新的,一般也是不稳定的
支持的选项

  • -a 获取仓库中的所有镜像
  • --disable-content-trust 取消镜像内容校验,默认为真

查看镜像信息

$ docker images
或者
$ docker image ls

可以显示本地存在的镜像信息,包括镜像名,版本号,镜像ID,创建时间,文件大小等,比如

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              18.04               4c108a37151f        2 weeks ago         64.2MB
busybox             latest              e4db68de4ff2        2 weeks ago         1.22MB
redis               latest              3c41ce05add9        3 weeks ago         95MB
python              latest              34a518642c76        3 weeks ago         929MB
nginx               latest              719cd2e3ed04        3 weeks ago         109MB
mysql               5.7                 a1aa4f76fab9        3 weeks ago         373MB
jenkins/jenkins     lts                 95bf220e341a        3 weeks ago         566MB

支持的选项

  • -a 列出所有镜像文件包括临时文件
  • --digests=true 列出镜像的数字摘要值
  • -f 过滤列出的镜像
  • --format="TEMPLATE" 控制输出格式
  • -q只显示镜像ID

用-q结合其他命令可以批量对这些镜像进行操作

为本地镜像添加TAG标签

$ docker tag oldxxx:xxx newxxx:xxx

给镜像添加一个新标签,方便以后操作这个镜像(比如,原镜像名和版本号太长了,我就给它搞一个短的镜像名和版本号)

实际上新旧标签指向同一个镜像,他们的镜像ID相同

查看镜像详细信息

$ docker [image] inspect NAME[:TAG]

信息包括制作者,适应架构,各层数字摘要等

查看镜像历史

$ docker history NAME[:TAG]

如果你看了上面那篇文章,你应该知道镜像文件是由多个层组成的,使用这个命令可以查看各个层的创建信息.

默认情况下,每层命令的命令如果过长会被截断,使用--no-trunc显示完整信息

搜索镜像

$ docker search [option] keyword

支持的选项

  • -f 过滤输出内容 后面跟规则

    • 'is-official=true' 查官方的镜像
    • 'stars=xxx' 收藏数在xxx以上的镜像
  • --format string 格式化输出内容
  • --limit int 限制输出结果个数,默认25个
  • --no-trunc 不截断输出结果

例如查找官方提供的带nginx关键字的镜像

$ docker search -f 'is-official=true' nginx

实际上,你可以打开浏览器去docker官网仓库去搜索

删除镜像

$ docker rmi IMAGE [IMAGE...]
或者
$ docker image rm IMAGE [IMAGE...]

选项

  • -f 强制删除镜像,即使有容器依赖它
  • -no-prune 不要清理未带标签的父镜像

后面可以跟上标签,当同一个镜像拥有多个标签的时候,docker rmi命令只是删除了该镜像多个标签中的指定 标签而巳,并不影响镜像文件; 但当镜像只剩下一个标签的时候就要小心了,此时再使用docker rmi命令会彻底删 除镜像。

也可以跟上ID,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。

清理镜像

$ docker image prune

选项

  • -a 删除所有无用镜像,不光是临时镜像
  • -filter 只清理符合给定过滤器的镜像
  • -f 强制删除镜像,不进行提示确认

创建镜像

基于已有容器创建

$ docker [container] commit [OPTIONS] CONTAINER [REPOSITORY [:TAG]]

选项

  • -a 作者信息
  • -c --change=[] 提交的时候执行Dockerfile指令,包括CMD | IENTRYPOINT | NV | EXPOSE | LABEL | ONBUILD | USER | VOLUME | WORKDIR
  • -m 提交信息
  • -p 提交时暂停容器运行

在你在容器运行某镜像的时候,对镜像进行某些操作,导致和原有镜像有了区别,就可以使用commit命令提交镜像,在原有的基础上创建新的镜像

此时,你对新建的镜像使用history命令查看镜像历史,你就会这个镜像是在原有镜像上面又加了一层

基于本地模板导入

$ docker [image] import [OPTIONS] filel|URL| -[REPOSITORY
[:TAG] ] 

模板下载地址

http://openvz.org/Download/templates/precreated

例如,下载了ubuntu的模板文件之后运行命令

$ cat ubuntu-18.04-x86_64-minimal.tar.gz I docker import - ubuntu:lB.04

使用Dockerfile创建镜像

Dockerfile是一个文本格式的配置文件,由一行行命令组成,只支持#开头的注释

回头再整理一篇文章

存出镜像

$ docker save -o [filename] [image] 导出镜像到指定文件中

选项

  • -o --output string 导出到指定文件

载入镜像

$ docker load -i [file]

选项

  • -i --input string 从指定文件导入

上传镜像

$ docker push 用户名/镜像名:版本号

首先要在DockerHub注册账号,并且在网页上先创建一个镜像仓库,它会自动在你镜像名前面加上你的用户名,只有官方的镜像才可以不加用户名

然后使用tag命令将本地镜像改名,改成用户名/镜像名的形式

本地再push就可以了

在DockerHub可以设置镜像的是私有还是共有的,共有的镜像不需要登录即可下载,私有的必须登录同名账号才可以下载

容器操作

创建容器

新建一个新容器

$ docker [container] create 

支持的选项非常多

启动容器

$ docker [container] start

创建并启动容器

等价于先 createstart,create的选项也可以使用

这个命令非常常用,不仅可以根据本地镜像创建容器并启动,而且还可以直接指定Docker仓库中的镜像,下载运行一行即可

$ docker [container] run

选项

  • -i 让容器的标准输出保持打开
  • -t 分配一个伪终端并绑定到容器的标准输出上
  • -d 以守护态运行

如果想要进行交互,最常用的命令是

$ docker [container] -it run xxx:xx /bin/bash

查看日志

$ docker [container] logs

选项

  • -details 打印详细日志
  • -f 保持持续输出
  • -since string 输出从某个时间点开始的日志
  • -tail string 输出最近的若干日志
  • -t 显示时间戳信息
  • -until string 输出某个时间之前的日志

暂停容器

$ docker [container] pause CONTAINER [CONTAINER ...]

恢复的话用

$ docker [container] unpause CONTAINER [CONTAINER ...]

终止容器

$ docker [container] stop [-t | --time[=10]] [CONTAINER ... ] 

自动清除掉所有处于停止状态的容器

$ docker container prune

Docker 容器中指定的应用终结时,容器也会自动终止

重启容器

$ docker [container] restart

进入容器

容器启动时,使用-d参数会在后台运行,这时候进入容器进行操作使用

$ docker [container] attach

支持选项

  • --detach-keys[=[]] 指定退出attach模式的快键键序列,默认是CTRL-P CTRL-Q;
  • --no-stdin=true|false 是否关闭标准输入,默认打开
  • --sig-proxy=true|false 是否代理收到的系统信号给应用进程,默认为true

多个窗口同事attach到同一个容器时,所有窗口同步显示,某个阻塞,其他窗口也无法执行操作了,所以这个命令几乎不使用,而使用exec

$ docker [container] exec

选项

  • -d 在后台执行命令
  • --detach-keys="" 指定将容器切回后台的按键
  • -e 指定环境变量列表
  • -i 打开标准输入接收用户输入命令,默认false
  • --privileged=true|false 是否给执行命令以高权限,默认false
  • -t 分配伪终端
  • -u 执行命令的用户或ID

通过指定 -it 参数来保持标准输入打开,并且分配一个伪终端。 通过exec 命令对 容器执行操作是最为推荐的方式

删除容器

$ docker [container] rm

选项

  • -f 强制,可以删除运行状态的容器
  • -l 删除容器连接,保留容器
  • -v 删除容器挂载的数据卷

导出容器

$ docker [container] export -o [fileName]

导入容器

可以从文件 URL 和仓库中导入

$ docker [container] import file|URL|- [REPOSITORY[:TAG]]

选项

  • -c 导入同时使用Dockerfile进行修改
  • -m 给修改命名

实际上,既可以使用 docker load 命令来导入镜像存储文件到本地镜像库,也可以使 用 docker [container] import 命令来导入一个容器快照到本地镜像库。 这两者的区 别在于:容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态), 而镜像存储文件将保存完整记录,体积更大。此外,从容器快照文件导人时可以重新指定标签等元数据信息

查看容器

查看容器详情

$ docker container inspect 

查看容器内进程

$ docker top

查看统计信息

$ docker stats

选项

  • -a 全部,默认仅运行
  • -format string 格式化输出信息
  • -no-stream 不持续输出
  • -no-trunc 不截断输出信息

复制文件

$ docker [container] cp 本地路径 容器名:容器路径

查看变更

$ docker [container] diff 容器名

查看端口映射

$ docker [container] port 容器名

更新配置

$ docker [container] update 容器名

转载于:https://www.cnblogs.com/XmCui/p/11150797.html

Docker镜像和容器相关命令相关推荐

  1. 1、镜像、容器相关命令、Dockerfile

    镜像.容器相关命令.Dockerfile 1.docker的镜像和容器 2.docker命令小结 3.Dockerfile创建image 3.1.指令说明 3.2.Dockerfile定制image流 ...

  2. DockerKubernetes ❀ Docker镜像与容器相关操作基础命令详解

    文章目录 1.Docker信息查询 1.1 版本信息 1.2 详细信息 1.3 帮助命令 2.镜像命令 2.1 本地镜像查看 2.2 镜像搜索 2.3 镜像拉取 2.4 镜像删除 3.容器命令 3.1 ...

  3. docker删除none镜像_Docker容器相关命令

    1.新建并启动容器 使用以下docker run命令即可新建并启动一个容器,该命令是最常用的命令,它有很多选项,下面将列举一些常用的选项. -d选项:表示后台运行 -P选项:随机端口映射 -p选项:指 ...

  4. docker镜像、容器以及命令操作

    docker image docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7 docker image是 ...

  5. Docker镜像和容器常用命令

    一..Docker帮助命令 1.显示docker的版本信息 docker version 2.显示docker的系统信息,包括镜像和容器的数量 docker info 3.docker帮助命令 doc ...

  6. docker镜像、容器 常用命令,容器端口映射

    文章目录 前言 一.docker基础命令 二.docker镜像命令 1.docker images:列出本地主机的镜像 2. docker search :查看镜像 3.docker pull:拉取镜 ...

  7. Docker容器相关命令

    容器相关命令 1.1 查看容器 查看正在运行的容器 docker ps 查看所有容器 docker ps –a 查看最后一次运行的容器 docker ps –l 查看停止的容器 docker ps - ...

  8. Docker镜像与容器命令

    2019独角兽企业重金招聘Python工程师标准>>> Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容 ...

  9. Docker镜像与容器命令 专题

    https://yeasy.gitbooks.io/docker_practice/content/install/mirror.html docker的工作流程图: 至少需要配备三样东西去使用doc ...

最新文章

  1. h265webplayer
  2. linux下的ps aux | grep -c php-fpm 与netstat -napo |grep php-fpm | wc -l 命令
  3. Lua学习笔记(2)
  4. python分支结构使用if保留字吗_关于Python分支结构,以下选项中描述不正确的是...
  5. msp430项目编程14
  6. python中静态方法存在的意义
  7. 0-1 背包实际应用
  8. 牛客网在线编程:公共字符
  9. 企业架构之道(二)企业架构方法论体系
  10. Tuxedo中间件介绍
  11. 对粒子滤波算法的理解 特别通俗易懂
  12. 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
  13. 放大镜旋转 css,css3中仿放大镜效果的几种方式原理解析
  14. 徕卡 sl android app,相机入魔 徕卡SL DPReview测评结论
  15. python建模库介绍:pandas与建模代码的结合,使用Patsy创建模型描述
  16. (原创干货)融资、路演-日常思考实战框架学习第七天
  17. 民间秘方是一个老中医几十年的心血
  18. 获取token的两种方法
  19. linux 蓝牙 profile,Linux_Linux系统下蓝牙立体声配置A2DP profile,系统配置:Linux debian 2.6.22.6 #7 - phpStudy...
  20. oftPerfect RAM Disk 内存盘管理,提高软件速度

热门文章

  1. java 唯一编号_Java秒杀系统实战系列~分布式唯一ID生成订单编号
  2. HTML可以替代CSS的所有功能,8款替代Dreamweaver的开源网页开发工具_html/css_WEB-ITnose...
  3. 重磅综述|大脑内在神经时间尺度:时间整合与分离
  4. DeeplabV3+训练数据集流程(学习记录)
  5. C#与.net有什么关系
  6. ElasticSearch十四--ES-index template 和 aggregation聚合分析
  7. 订阅号如何获取用户基本信息?
  8. 前端整合MathJax
  9. H5网页语音实时播报功能的实现
  10. java计算机毕业设计家教到家平台MyBatis+系统+LW文档+源码+调试部署