4. docker镜像的概念、管理(查看、下载、删除)
镜像的概念
镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上。镜像是容器运行的基石。
- 下图展示的是Docker镜像的系统结构。其中,镜像的最底层必须是一个称为启动文件系统(bootfs)的镜像,用户不会与这一层直接打交道。bootfs的上层镜像就是我们熟知的根镜像。
- 镜像的本质是磁盘上一系列文件的集合。
查看
docker images:可以列出本机上的所有镜像:
- REPOSITORY:仓库名称。
- [namespace/centos]:由命名空间和实际的仓库名称组成。当你再Docker Hub上注册一个账户时,账户名自动成为你的命名空间,该命名空间是用来区分Docke Hub上注册的不同用户或者组织的。
- [centos]:只有仓库名。属于顶级命名空间,只用于官方镜像。
- [dl.dockerpool.com:5000\centos:7]:指定URL路径的方式。适用于自己搭建的Hub或者第三方Hub上获取镜像。
- TAG:用于区分同一个仓库中的不同镜像。
- IMAGE ID:镜像的唯一标识:64位HashID。
- CREATED:镜像 的创建时间。
- SIZE:镜像所占用的虚拟大小,该大小包含了所有共享文件的大小。
docker images ce*:通配符,找到符合条件的一系列镜像。
docker inspect [NAME]/[CONTAINER ID]:images只会列出镜像的基本信息,详细信息可以通过inspect命令查看:
下载
下载之前推荐使用加速器
阿里云的镜像加速大家参考阿里给的方案https://dev.aliyun.com/search.html,不过我试了几次发现貌似阿里给的方案有点问题(我只试了centos7),所以阿里的方案大家自定参考,我就不说了, 我说下我配置阿里云镜像成功的方法。
- 首先要在上面的连接中注册阿里云开发者平台账号,我们在加速器选项中得到一个各自专属的加速器地址。
配置阿里云的docker镜像库:在阿里云开通容器镜像服务拿到加速地址在执行以下命令:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker run:命令运行时会在本地寻找镜像,找不到的时候就会去Docker Hub上面搜索并下载后运行。
docker search [NAME]:下载之前可以通过search命令查找搜索符合的镜像:
- NAME:镜像名称。
- DESCRIPTION:镜像的简要描述。
- STARS:用户对镜像的评分。
- OFFICIAL:是否为官方镜像。
- AUTOMATED:是否使用了自动构建。
docker pull [NAME]:可以预先将镜像拉到本地。镜像名必须完整地包含命名空间和仓库名。如果一个仓库中存在多个镜像,还必须制定TAG,否则使用默认TAG:latest。
删除
docker rmi [NAME]/[CONTAINER ID]对于不需要的镜像,可以使用rmi命令删除。与移除容器的命令rm相比,删除镜像的命令多了一个i,i即image的意思。
- 删除多个:多个镜像之间使用空格隔开。
-f:强制删除,大部分删不掉的情况可能是因为这个镜像被容器依赖了,可以选择先移除容器。
docker rm $(docker ps -a -q):如果本地有很多已经停止运行的容器,一个个删除很麻烦,可以使用下面的命令将这些容器一次性删除,这样就能减少无用容器对镜像的依赖。 docker ps -a -q:用来列出所有容器的ID
4. docker镜像的概念、管理(查看、下载、删除)的更多相关文章
- Docker 创建、运行、查看、删除容器
Docker 创建.运行.查看.删除容器 Step 1: 查看docker程序是否存在, 功能是否正常. sudo docker info 若不正常请参考下文: Docker安装和程序创建 Step ...
- Docker 镜像与容器管理
镜像与容器简介 Docker的大部分操作都围绕着它的三大核心概念:镜像.容器.仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术尤为重要,在docker中,我们重点关注的就是镜像和容器了 ...
- Docker镜像和容器管理(二)
Docker安装 Docker镜像管理 https://hub.docker.com/ 是公共的一个Docker镜像仓库,类似GitHub一样,上面有非常多的开源项目镜像. 可以直接在命令行搜索镜像 ...
- docker镜像拉取、运行、删除
1.拉取hello-world镜像并运行 docker pull hello-world 拉取hello-world镜像Using default tag: latestlatest: Pulling ...
- Docker学习笔记四:Docker镜像、容器管理工具shipyard
一.拉取以下几种镜像: docker pull alpineshipyard/shipyarddocker pull swarm docker pull shipyard/shipyarddocker ...
- Docker 镜像-管理-导入-导出
目录 Docker 镜像基本概念 Docker 镜像加速 Docker 镜像 常用命令 Docker 镜像的创建和导出导入 Docker 镜像基本概念 我们使用的容器都是基于镜像的,镜像是由多层组成的 ...
- docker镜像、容器
第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...
- 深刻理解Docker镜像大小
都说容器大法好,可是假设没有Docker镜像,Docker该是多无趣啊. 是否还记得第一个接触Docker的时候,你从Docker Hub下拉的那个镜像呢?在那个处女镜像的基础上.你执行了容器生涯的处 ...
- 你必须知道的Docker镜像仓库的搭建
近期工作中发现用到的容器镜像越来越多(不多的时候没考虑过镜像仓库的问题),同一个容器镜像也存在多个版本,那么镜像仓库的搭建需求就涌现出来,本文就目前的几个常用镜像仓库的搭建进行介绍,我们可以根据需要选 ...
随机推荐
- 兔子的晚会 2016Vijos省选集训 day1
兔子的晚会 (xor.c/pas/cpp)============================= 很久很久之前,兔子王国里居住着一群兔子.每到新年,兔子国王和他的守卫总是去现场参加晚会来欢庆新年. ...
- 【BZOJ4399】魔法少女LJJ 线段树合并
[BZOJ4399]魔法少女LJJ Description 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了LJJ感叹道“这里真是个迷人的 ...
- 【BZOJ2626】JZPFAR kd-tree+堆
[BZOJ2626]JZPFAR Description 平面上有n个点.现在有m次询问,每次给定一个点(px, py)和一个整数k,输出n个点中离(px, py)的距离第k大的点的标号.如果有两个( ...
- rtmp直播拉流客户端EasyRTMPClient设计过程中时间戳问题汇总
EasyRTMPClient 简介 EasyRTMPClient是EasyDarwin流媒体团队开发.提供的一套非常稳定.易用.支持重连接的RTMPClient工具,以SDK形式提供,接口调用非常简单 ...
- 使用qt+ros调用摄像头遇到的问题
当使用摄像头遇到如下问题:[usb_cam-1] process has died [pid 12288, exit code 127, cmd /opt/ros/indigo/lib/usb_cam ...
- Qt — tableWidget插入复选框
之前不太了解Qt中的相关控件,一直尝试直接在tableview上增加复选框. 但相对来说,在tableview增加复选框的工作量与麻烦程度远超tableWidget. 接下来是如何在Qt的tableW ...
- 性能优化——Web前端性能优化
核心知识点: 1.排查网站性能瓶颈的手法:分析各个环节的日志,找出异常部分 2.Web前端:网站业务逻辑之前的部分(浏览器.图片服务.CDN) 3.优化手段 1)浏览器优化 (1)减少http请求 a ...
- PAT 乙级 1081. 检查密码 (15) 【字符串】
题目链接 https://www.patest.cn/contests/pat-b-practise/1081 思路 有一个坑点 可能会输入空格 也就是说 要用 geline 或者 gets() 然后 ...
- <JAVA8新增内容>关于匿名内部集合和lambda表达式
要想说清楚JAVA中的Lambda表达式,必须想讲一下匿名内部类来帮助理解本质. 一.匿名内部类 匿名内部类适合创建那种只需要一次使用的类,例如前面介绍命令模式时所需要的Command对象,匿名内部类 ...
- 9.1 NOIP普及组试题精解(1)
9-1 series1.c #include <stdio.h> int main() { float s=0.0,k; int n; printf("输入数字k(1~15):& ...