docker笔记(2)——docker镜像操作
操作环境:mac OS 10.14.6
docker版本:10.03.1
终端:iterm2 3.3
时间:2019年8月
docker 镜像,是运行容器的模板,通过pull
操作会向指定仓库获取镜像,默认仓库为Docker hub
一、镜像常用操作
- pull
- run
- images
- search
- rmi
1、获取镜像[默认仓库:docker hub]
命令:
$ docker pull <image_name>[:tag]
# 获取ubuntu:latest
# 在获取镜像时, 若没有指定镜像标签,docker会自动获取标签为`latest`的镜像
$ docker pull ubuntu
镜像文件一般由很多层组成,不同镜像可以复用相同层,每层都拥有一个唯一ID,由64位十六进制字符串进行区分。
2、运行镜像
命令:
$ docker run <image_name>[:tag]
# 运行ubuntu, 同样没有指定标签,自动使用`latest`
$ docker run -it ubuntu bash
# 运行镜像后,进入docker的shell
root@7e5c1db9714f:/# cat /etc/issue # 查看系统版本
3、显示镜像
命令:
$ docker images
标签说明:
REPOSITORY
:镜像名称
TAG
: 镜像标签
IMAGE ID
: 镜像唯一ID
CREATED
: 镜像最后更新时间
SIZE
: 镜像大小 -> 所有的镜像大小相加并不是占用磁盘大小,占用空间会更小
4、添加镜像名称和标签
$ docker tag <源名称>[:<源标签>] <新名称>[:<新标签>]
$ docker tag nginx:latest porxy:v1.0
::说明:: 源标签 && 新标签如果为latest
可以省略
tag
命令有点类似创建了一个连接,新创建一个名字和标签,指向一个旧的镜像,
5、镜像历史
$ docker history <镜像名> [:<镜像标签>]
$ docker history proxy:v1.0
history
命令可以查看创建每一层使用的命令, 对于比较长的命令,会自动被截断, 可以通过添加参数--no-trunc
显示完整命令
docker history --no-trunc <镜像名>[:<镜像标签>]
6、搜索镜像[默认仓库:Docker hub]
$ docker search <关键字>
7、删除镜像
1)、没有运行镜像的情况
# 使用标签删除,如果对应的镜像只有这唯一的标签,将会删除这个镜像,否则只是解除标签链接
$ docker rmi <镜像名>[:<标签>]
# 使用镜像ID删除镜像,如果删除的镜像对应多个标签,docker将不允许删除
$ docker rmi <镜像ID>
$ docker rmi proxy:v1.0 # 使用标签删除
$ docker rmi e445 # 使用镜像ID删除, 镜像ID只需要输入前3位或以上
$ docker rmi nginx # 删除单个标签对应镜像, 分为两步,第一步解除标签链接, 第二步删除镜像
2)、运行镜像之后进行删除
运行镜像后如果我们尝试删除, 将出现Error信息:提示镜像对应的容器正在运行,无法删除
可以加参数-f
进行强制删除,也可以先停止容器,删除容器后再进行镜像删除
#常规操作
$ docker ps -a # 查看所有的容器
$ docker stop <容器id> # 对于运行中的容器需要先停止
$ docker rm <容器id> # 通过容器id删除容器
$ docker rm <镜像名称>[: <标签>] # 删除镜像
# 强制操作
$ docker rmi -f <镜像ID> # 不推荐的操作,可能会出现不可预料的后果
步骤说明
- 查看运行中的容器
docker ps
- 停止运行中的容器
docker stop <镜像id>
- 查看所有容器
docker ps -a
- 删除停止的容器
docker rm <镜像id>
- 删除镜像
docker rmi <镜像名>[:<标签>]
::说明:: 容器相关操作将在后续章节继续
创建镜像、生成镜像、导出镜像以及导入镜像将在容器之后继续
二、关于镜像可能还想了解
1、查看镜像占用磁盘空间
docker system df
<none>:<none>
镜像
将镜像名称和标签都为的镜像称为虚悬镜像, 产生原因是, 仓库服务器更新了本地相同名称和标签的镜像,并将镜像重新pull到本地,由于新镜像名和标签与原有镜像名和标签相同,docker自动将原有名称和标签修改为
查看虚悬镜像命令
docker images -f dangling=true
删除所有虚悬镜像命令
docker rmi $(docker images -f “dangling=true” -q)
参考页面:
英文:What are Docker : images? —Project Atomic
2、列出部分镜像
docker image ls ubuntu
在ls
后接镜像名称, 会显示出对应名称的所有镜像docker image ls ubuntu:latest
在ls
后边接名称和标签,会显示出对应的镜像
3、过滤器 -f
or --filter
docker image ls -f since=mongo:3.2
显示mongo:3.2镜像位置之前的镜像 将since
替换成before
将显示mongo:3.2位置之后的镜像
4、指定格式显示 -q
&& --format
1. 只显示container id 可以用于启动或者别的操作
`docker images -q`
2. 指定我们需要的格式进行输出或者命令传递
docker images --format “{{.ID}}: {{.Repository}}”
只显示ID
&& Repository
需要区分大小写
支持\t
等转义字符
docker笔记(2)——docker镜像操作的更多相关文章
- 六、【Docker笔记】Docker数据管理
前几节我们介绍了Docker的基本使用和三大核心概念,那么我们在使用Docker的过程中,Docker中必然产生了大量的数据,对于这些数据我们需要查看或者对这些数据进行一个备份,也有可能容器之间的数据 ...
- 二、【Docker笔记】Docker的核心概念及安装
Docker主要有三大核心的概念,分别为镜像(Image).容器(Container)及仓库(Repository). 一.核心概念 1.Docker镜像 Docker镜像其实与虚拟机镜像很类似, ...
- docker学习笔记3:镜像操作(查找和下载)
一.查看本地镜像 只有下载后,镜像才会保存在本地(docker环境所在的主机),通过如下命令可以查看本地已经存在的镜像. 命令:dokcer images 上面命令列出本地所有已经存在的镜像,显示的信 ...
- docker 笔记(2) base镜像
base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ub ...
- 三、【Docker笔记】Docker镜像
镜像是Docker的三大核心概念之一.Docker在运行容器之前,本地需要存有镜像,若不存在则Docker会首先尝试从默认的镜像仓库中去下载,当然我们也可以去配置自己的仓库,如此就会从我们配置的仓库中 ...
- 四、【Docker笔记】Docker容器
容器是Docker的另一个核心概念,容器就是镜像的一个运行实例,只是它具有一个可写的文件层,而镜像是一个只读的文件. 一.创建容器 1.新建容器 我们可以使用 docker create 命令来创建一 ...
- 七、【Docker笔记】Docker中网络基础配置
一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...
- Docker学习笔记(2)-docker镜像操作
本节将会涉及Docker的镜像操作. 1. 获取镜像 如何获取Docker Hub上的镜像?可通过docker pull命令获取,其格式为: docker pull [选项] [Docker Regi ...
- Docker笔记--操作容器命令
Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用 ...
随机推荐
- 1、docker简介:课程定位、是什么、能干什么、下载
1.前提知识和定位 2.是什么 1.为什么会有docker出现 环境配置如此麻烦,换一台机器,就要重来一次,费力费时.很多人想到,能不能从根本上解决问题,软件可以带环境安装? 也就是说,安装的时候,把 ...
- HDU 6051 - If the starlight never fade | 2017 Multi-University Training Contest 2
/* HDU 6051 - If the starlight never fade [ 原根,欧拉函数 ] | 2017 Multi-University Training Contest 2 题意: ...
- 如何打开Mac OSX 终端的颜色
如何打开Mac OSX 终端的颜色 听语音 | 浏览:8453 | 更新:2015-12-15 16:48 1 2 3 4 5 6 7 分步阅读 Mac 终端默认颜色很单一,文件夹和文件无法区分,可以 ...
- Spring bean 实现InitializingBean和DisposableBean接口实现初始化和销毁前操作
# InitializingBean接口> Spring Bean 实现这个接口,重写afterPropertiesSet方法,这样spring初始化完这个实体类后会调用这个方法```@Over ...
- eclipse运行内存超出
问题分析: 1:可能是eclipse自身的运行内存不够 2:可能是java中的jre内存不够 修改方法: 1 改eclipse的运行内存 在eclipse.ini文件中 -startupplugins ...
- kubernetes 的configMap和sercet配置信息
简介: 启动pod,pod启动时可以将configMap资源关联到当前pod上来,从中读一个数据c传递给pod内的容器的一个变量.任然是变量注入的方式来给容器传配置信息. 把每一个configMap当 ...
- 继承关系下的this关键字
继承关系下的this关键字 在继承关系下,父类中的this关键字并不总是表示父类中的变量和方法.this关键字的四种用法如前文所述,列举如下. 1) this(paras…); 访问其他的构造方法 2 ...
- python——装饰器(不定长参数,闭包,装饰器)示例
def func(functionName): print("正在装饰") def func_in(*args, **kargs): print("------func_ ...
- OpenCV中出现“Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005C8ECFFA80 处。”的异常
对于OpenCV的安装 要感谢网友空晴拜小白提供的教程 链接如下: https://blog.csdn.net/sinat_36264666/article/details/73135823?ref= ...
- Hibernate3运行原理
Hibernate的运行过程如下: 1.应用程序先调用Configuration类,该类读取Hibernate配置文件及映射文件中的信息,2.并用这些信息生成一个SessionFactory对象,3. ...