什么是镜像

简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统。

Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认镜像仓库下载,用户也可以通过配置,使用自定义的镜像仓库。

Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。
https://hub.docker.com/explore
默认是国外的源,下载会慢,建议配置国内镜像仓库:
# vi /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com"]
}

镜像与容器联系

镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history <ID/NAME> 查看镜像中各层内容及大小,每层对应着Dockerfile中的一条指令。Docker镜像默认存储在/var/lib/docker/<storage-driver>中。
容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。

Docker使用存储驱动管理镜像每层内容及可读写层的容器层。

查看镜像
root@devops-k8s-master ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

拉取nginx镜像
[root@devops-k8s-master ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
f2aa67a397c4: Pull complete 
3c091c23e29d: Pull complete 
4a99993b8636: Pull complete 
Digest: sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884
Status: Downloaded newer image for nginx:latest
[root@devops-k8s-master ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae513a47849c        3 weeks ago         109MB
[root@devops-k8s-master ~]# docker pull nginx:1.10
1.10: Pulling from library/nginx
6d827a3ef358: Pull complete 
1e3e18a64ea9: Pull complete 
556c62bb43ac: Pull complete 
Digest: sha256:6202beb06ea61f44179e02ca965e8e13b961d12640101fca213efbfd145d7575
Status: Downloaded newer image for nginx:1.10
[root@devops-k8s-master ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae513a47849c        3 weeks ago         109MB
nginx               1.10                0346349a1a64        14 months ago       182MB

查看镜像历史
[root@devops-k8s-master ~]# docker history nginx
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
ae513a47849c        3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL [SIGTERM]         0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  EXPOSE 80/tcp                0B                  
<missing>           3 weeks ago         /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B                 
<missing>           3 weeks ago         /bin/sh -c set -x  && apt-get update  && apt…   53.7MB              
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NJS_VERSION=1.13.12.0…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.13.12…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop) ADD file:ec5be7eec56a74975…   55.3MB

[root@devops-k8s-master overlay2]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae513a47849c        3 weeks ago         109MB
nginx               1.11                5766334bdaa0        13 months ago       183MB
nginx               1.10                0346349a1a64        14 months ago       182MB

查看镜像
[root@devops-k8s-master overlay2]# docker image  ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae513a47849c        3 weeks ago         109MB
nginx               1.11                5766334bdaa0        13 months ago       183MB
nginx               1.10                0346349a1a64        14 months ago       182MB

删除一个镜像
[root@devops-k8s-master overlay2]# docker image rm nginx:1.11
Untagged: nginx:1.11
Untagged: nginx@sha256:e6693c20186f837fc393390135d8a598a96a833917917789d63766cab6c59582
Deleted: sha256:5766334bdaa0bc37f1f0c02cb94c351f9b076bcffa042d6ce811b0fd9bc31f3b
Deleted: sha256:1fcf2d3addf02c3b6add24c7b0993038f7e3eee616b10e671e25440e03bc7697
Deleted: sha256:51c56cdbb9306c4d6f2da2b780924f3b926bd13d15a4f6693a5175690e288436
Deleted: sha256:ec9a826666cfa5df0471f716145da63294019c09a5f2e31613122b57df8f7ce0
[root@devops-k8s-master overlay2]# docker image  ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae513a47849c        3 weeks ago         109MB
nginx               1.10                0346349a1a64        14 months ago       182MB

标记镜像
[root@devops-k8s-master overlay2]# docker tag nginx:1.10 nginx:v01
[root@devops-k8s-master overlay2]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae513a47849c        3 weeks ago         109MB
nginx               1.10                0346349a1a64        14 months ago       182MB
nginx               v01                 0346349a1a64        14 months ago       182MB

保存镜像到本地生成tar文件
[root@devops-k8s-master overlay2]# docker image save nginx:1.10 > /tmp/nginx1.10.tar
[root@devops-k8s-master overlay2]# cd /tmp/
[root@devops-k8s-master tmp]# ll
-rw-r--r-- 1 root root 189574656 5月  26 15:39 nginx1.10.tar
加载本地镜像

[root@devops-k8s-master ~]# docker image load < /tmp/nginx1.10.tar

[root@devops-k8s-master ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@devops-k8s-master ~]# docker run -itd nginx
ced18e1589acea7078783b45b07967b823223d75aa8186dd305678b302ffc594
[root@devops-k8s-master ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ced18e1589ac        nginx               "nginx -g 'daemon of…"   7 seconds ago       Up 5 seconds        80/tcp              gifted_kowalevski

导出容器文件tar包

[root@devops-k8s-master ~]# docker export ced18e1589ac > /tmp/testnginx.tar

导入容器文件tar包

[root@devops-k8s-master ~]# docker image import /tmp/testnginx.tar nginx:1.10

Docker 容器镜像删除
1.停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
2.查看当前有些什么images
docker images
3.删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)

Docker 镜像管理相关推荐

  1. Docker镜像管理

    Docker镜像管理 一.Docker镜像的基本操作 1.查看本地镜像 2.搜索镜像仓库镜像 3.拉取镜像 4.导出镜像 5.导入镜像 6.删除镜像 二.docker的操作系统 1.Linux系统构成 ...

  2. Docker 2.3:Docker 镜像管理

    2.3:Docker 镜像管理 2.3.1:docker search - 搜索镜像 如果要搜索镜像,更好的方式是直接在 Dockerhub 网页上进行搜索,命令行搜索结果并不直观: 基本搜索 会将含 ...

  3. docker镜像管理基础和操作

    #docker镜像管理基础 镜像的概念 镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱. docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动容器. docker ...

  4. (五)Docker镜像管理1之镜像操作

    这篇文章将介绍镜像的一般操作,包括查看.查找.下载.删除等. 下载镜像 使用下面的命令来下载镜像 1 docker pull 镜像名称或者镜像名称:标签 1 2 #如果不加标签则表示最新的 docke ...

  5. docker镜像管理基础

    1. 镜像的概念 镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱. docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动容器. docker镜像采用分层构建机制, ...

  6. Docker 镜像管理(私有云阿里云)

    文章目录 一.本地镜像发布到阿里云 1.容器打包成镜像 2.创建阿里云镜像仓库 3.本地镜像发布到阿里云 4.本地镜像发布到阿里云后下载测试 二.本地镜像发布到私有云 1.拉取Docker Regis ...

  7. 云原生Docker镜像管理

    docker是什么? docker是一个go语言开发的应用容器引擎. docker的作用? ①运行容器里的应用: ②docker是用来管理容器和镜像的一种工具. #容器 与 虚拟机 的区别? 容器 虚 ...

  8. Docker学习之三:docker镜像管理

    Docker镜像 一个host可以启动多个容器,基于镜像可在容器中启动不同的应用.如果本地无此镜像,docker可自动连接到docker registry上下载镜像,存储到本地文件系统(如overla ...

  9. 详解docker镜像管理命令

    一.国内Docker镜像仓库 由于大家都知道的原因,从国外的docker 仓库中pull镜像的下载速度实际上是很慢的.国内的一些一线厂商以及docker官方都在国内免费提供了一些docker镜像仓库, ...

最新文章

  1. 若依JAVA开源框架自动生成代码步骤记录-创建子module以及导入子module相关问题
  2. **加密解密基础、PKI及SSL、创建私有CA**
  3. spring boot maven项目返回值乱码的解决方法
  4. java一年制培训_学Java学了一年,怎么找实习?
  5. mysql连表查询效率,我就不信你还听不明白了!
  6. 我为什么做程序猿訪谈录
  7. ThreadLocal总结(jdk1.8源码)
  8. 前端VUE完成截取当前页面转PDF,支持分页
  9. PB系统连接原生数据库DB文件
  10. 黑马程序员—-C语言入门十重奏之十renascence
  11. linux修改文件类型和权限
  12. UFS系列三:UFS数据包UPIU
  13. 免费国外PHP+MYSQL空间申请
  14. codeforces 407C Curious Array
  15. 最快最方便的献爱心方式——蚂蚁庄园
  16. 二分匹配Hopcroft-Carp算法
  17. 【android】Notification 和 Service的结合应用以及Notification在Android8.0之后的坑 Bad notification
  18. go配置sublime text时使用MarGo报错及解决方法
  19. 逃离「大厂」回乡创业,用氚云攻克流量瓶颈,年入1300万
  20. C++运行三维人脸重建 VRN

热门文章

  1. 一本超越期待的 C++ 书——简评 Boost程序库完全开发指南 深入C++ 准 标准库
  2. C语言中变量的作用域和生命周期
  3. 计算机毕业设计-基于SSM+Vue的公交路线管理系统-java公交管理系统代码
  4. 《成为沃伦·巴菲特》笔记与感想
  5. 在公共服务器上搭建python虚拟环境
  6. linux usb子系统.框架
  7. 拍卖行做VC,第一次出手就投了个Web3
  8. 小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!
  9. 2055 到淄博旅游
  10. AI 之 OpenCvSharp 大图找小图(案例版)