Docker镜像介绍
一、Docker镜像介绍
镜像是Docker的三大核心概念之一。
Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认的镜像仓库下载(默认使用Docker Hub公共注册服务中的仓库),我们也可以通过配置,使用自定义的镜像仓库。
二、获取最新的Ubuntu镜像
从Docker Hub的Ubuntu仓库下载一个最新的Ubuntu操作系统镜像,并下载一个centos7.2的系统镜像
# docker pull ubuntu
# docker pull centos:7.2.1511
从下载过程中可以看到分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 sha256 的摘要,以确保下载一致性。
三、查看本地镜像信息
# docker images
# 来自于哪个仓库 镜像标签信息 镜像的ID(唯一) 创建时间 镜像大小
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 775349758637 2 weeks ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
centos latest 1e1148e4cc2c 11 months ago 202MB
使用docker tag为本地镜像添加新的标签, 这两个镜像的ID是一样的,只是名字不同而已。标签起到的快捷方式的作用。
# docker tag centos:7.2.1511 centos:7.2
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.2 9aec5c5fe4ba 8 months ago 195MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
四、搜索镜像
--stars=0 默认的输出结果将按照星级评价进行排序,还可看到是否官方镜像,是否自动允许用户验证镜像的来源和内容。
# docker search mysql
五、删除镜像
# docker rmi ubuntu:latest
# 或者复制镜像的ID全部删除
# docker rmi -f 9aec5c5fe4ba
六、创建镜像
创建镜像有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
本次主要是基于已有的镜像容器创建
6.1 首先启动一个镜像,并在其中进行修改,并退出
[root@192-168-5-91 ~]# docker run -it centos /bin/bash
[root@f2306f13f765 /]# yum install net-tools -y
[root@f2306f13f765 /]# exit
6.2使用docker commit创建容器
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2306f13f765 centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago gracious_shockley
# docker commit -m 'install net-tools' -a 'lzfn' f2306f13f765 centos_test # -m 提交消息,-a 作者信息
sha256:c753a863c07a4901ed72ff39110971538a40dfc66824dffad5e0060d5994b555
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_test latest c753a863c07a 24 seconds ago 291MB
七、镜像的导入与导出
7.1 将镜像导出到本地文件
# docker save -o centos7.2.tar centos:7.2.1511
# docker save centos:7.2.1511 > centos7.2.tar
7.2 将本地镜像导入到docker仓库
# docker load --input centos7.2.tar
# docker load < centos7.2.tar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?