Docker镜像最全详解(图文全面总结)
wptr33 2024-11-13 15:03 47 浏览
Docker镜像是Docker的核心组件,也是构建云原生的基石,下面我就全面来详解Docker镜像@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
Docker镜像定义
Docker 镜像是一种轻量级可执行的独立软件包,Docker 镜像除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
Docker镜像作用
我们可以基于某一个镜像创建多个容器:
镜像是运行容器的前提,镜像是 Docker 容器的基石, 官方的Docker Hub 网站已经提供了数十万个镜像供大家开放下载,有了镜像才能启动容器。
Docker容器和Docker镜像的区别
从Docker 的官方文档来看,Docker 容器的定义和 Docker 镜像的定义几乎是相同,Docker 容器和Docker 镜像的区别主要在于docker 容器多出了一个可写层。
简单说来,我们可以将Docker 镜像看成是Docker 容器的静态时,也可将Docker 容器看成是Docker镜像的运行时。
Docker镜像使用
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
列出镜像列表
我们可以使用 docker images 来列出本地主机上的镜像:
docker images示例:
[root@mikechen ~]# docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
node latest 5377c9a2fb1f 5 weeks ago 943MB
openzipkin/zipkin latest 1850194f377c 3 months ago 160MB
rancher/server stable 98d8bb571885 6 months ago 1.08GB
redis 5.0.7 7eed8df88d3b 8 months ago 98.2MB
hello-world latest bf756fb1ae65 10 months ago 13.3kB
参数介绍
- REPOSITORY:表示镜像的仓库源;
- TAG:镜像的标签;
- IMAGE ID:镜像ID;
- CREATED:镜像创建时间;
- SIZE:镜像大小;
查找镜像
使用如下命令,即可查找镜像:
docker search 镜像名称比如:我查找redis镜像
[root@localhost ~]# docker search redis出现如下镜像:
NAME DESCRIPTION
STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store th...
9921 [OK]
sameersbn/redis
83 [OK]
grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0, 6.279
rediscommander/redis-commander Alpine image for redis-commander - Redis m...
65 [OK]
redislabs/redisearch Redis With the RedisSearch module pre-load...参数介绍
- NAME: 镜像仓库源的名称;
- DESCRIPTION: 镜像的描述;
- OFFICIAL: 是否 docker 官方发布;
- stars: 类似 Github 里面的 star,表示点赞、喜欢的意思;
- AUTOMATED: 自动构建;
拉取镜像
语法格式:
docker pull 镜像名称示例:要拉取 mysql镜像
[root@docker ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
6d28e14ab8c8: Pull complete
dda15103a86a: Pull complete
55971d75ab8c: Pull complete
f1d4ea32020b: Pull complete
61420072af91: Pull complete
05c10e6ccca5: Pull complete
7e0306b13322: Pull complete
900b113c001e: Pull complete
06cd07c30bf4: Pull complete
df0d65aee5aa: Pull complete
53eeb6e0335c: Pull complete
6cf8f9563e97: Pull complete
Digest: sha256:f91e704ffa9f19b9a267d9321550a0772a1b64902226d739d3527fd6edbe3dfe
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest另外这里也可以很清楚的看到,是一层一层的进行下载,这就是镜像分层结构。
默认情况下去docker hub下载镜像比较慢,由于是在国外所以不太稳定,自己可以配置为国内的镜像仓库,如阿里云仓库。
删除镜像
镜像删除使用 docker rmi 命令:
docker rmi 镜像名称示例,删除nginx的镜像:
root@mikechen:~# docker rmi -f nginx:v3更新镜像
语法格式:
docker exec -i -t 镜像名称 /bin/bash在运行的容器内使用 apt-get update 命令进行更新,在完成操作之后,输入 exit 命令来退出这个容器。
Docker镜像总结
运行容器时如果使用的镜像本地不存在,会自动从官方Docker Hub 镜像源仓库中下载,我们也可以自己制作镜像供他人下载。
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
相关推荐
- oracle数据导入导出_oracle数据导入导出工具
-
关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...
- 继续学习Python中的while true/break语句
-
上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个...
- python continue和break的区别_python中break语句和continue语句的区别
-
python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...
- 简单学Python——关键字6——break和continue
-
Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...
- 2-1,0基础学Python之 break退出循环、 continue继续循环 多重循
-
用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...
- Python 中 break 和 continue 傻傻分不清
-
大家好啊,我是大田。...
- python中的流程控制语句:continue、break 和 return使用方法
-
Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...
- L017:continue和break - 教程文案
-
continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...
- 作为前端开发者,你都经历过怎样的面试?
-
已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...
- 面试被问 const 是否不可变?这样回答才显功底
-
作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...
- 2023金九银十必看前端面试题!2w字精品!
-
导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。...
- 前端面试总结_前端面试题整理
-
记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...
- 由浅入深,66条JavaScript面试知识点(七)
-
作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录...
- 2024前端面试真题之—VUE篇_前端面试题vue2020及答案
-
添加图片注释,不超过140字(可选)...
- 今年最常见的前端面试题,你会做几道?
-
在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...
- 一周热门
- 最近发表
-
- oracle数据导入导出_oracle数据导入导出工具
- 继续学习Python中的while true/break语句
- python continue和break的区别_python中break语句和continue语句的区别
- 简单学Python——关键字6——break和continue
- 2-1,0基础学Python之 break退出循环、 continue继续循环 多重循
- Python 中 break 和 continue 傻傻分不清
- python中的流程控制语句:continue、break 和 return使用方法
- L017:continue和break - 教程文案
- 作为前端开发者,你都经历过怎样的面试?
- 面试被问 const 是否不可变?这样回答才显功底
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)
