百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Docker镜像最全详解(图文全面总结)

wptr33 2024-11-13 15:03 13 浏览

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万字《阿里架构师进阶专题合集》里面。

相关推荐

【推荐】一款开源免费、美观实用的后台管理系统模版

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍...

Android架构组件-App架构指南,你还不收藏嘛

本指南适用于那些已经拥有开发Android应用基础知识的开发人员,现在想了解能够开发出更加健壮、优质的应用程序架构。首先需要说明的是:AndroidArchitectureComponents翻...

高德地图经纬度坐标批量拾取(高德地图批量查询经纬度)

使用方法在桌面上新建一个index.txt文件,把下面的代码复制进去保存,再把文件名改成index.html保存,双击运行打开即可...

flutter系列之:UI layout简介(flutter ui设计)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。...

Android开发基础入门(一):UI与基础控件

Android基础入门前言:...

iOS的布局体系-流式布局MyFlowLayout

iOS布局体系的概览在我的CSDN博客中的几篇文章分别介绍MyLayout布局体系中的视图从一个方向依次排列的线性布局(MyLinearLayout)、视图层叠且停靠于父布局视图某个位置的框架布局(M...

TDesign企业级开源设计系统越发成熟稳定,支持 Vue3 / 小程序

TDesing发展越来越好了,出了好几套组件库,很成熟稳定了,新项目完全可以考虑使用。...

WinForm实现窗体自适应缩放(winform窗口缩放)

众所周知,...

winform项目——仿QQ即时通讯程序03:搭建登录界面

上两篇文章已经对CIM仿QQ即时通讯项目进行了需求分析和数据库设计。winform项目——仿QQ即时通讯程序01:原理及项目分析...

App自动化测试|原生app元素定位方法

元素定位方法介绍及应用Appium方法定位原生app元素...

61.C# TableLayoutPanel控件(c# tabcontrol)

摘要TableLayoutPanel在网格中排列内容,提供类似于HTML元素的功能。TableLayoutPanel控件允许你将控件放在网格布局中,而无需精确指定每个控件的位置。其单元格...

想要深入学习Android性能优化?看完这篇直接让你一步到位

...

12个python数据处理常用内置函数(python 的内置函数)

在python数据分析中,经常需要对字符串进行各种处理,例如拼接字符串、检索字符串等。下面我将对python中常用的内置字符串操作函数进行介绍。1.计算字符串的长度-len()函数str1='我爱py...

如何用Python程序将几十个PDF文件合并成一个PDF?其实只要这四步

假定你有一个很无聊的任务,需要将几十个PDF文件合并成一个PDF文件。每一个文件都有一个封面作为第一页,但你不希望合并后的文件中重复出现这些封面。即使有许多免费的程序可以合并PDF,很多也只是简单的将...

Python入门知识点总结,Python三大数据类型、数据结构、控制流

Python基础的重要性不言而喻,是每一个入门Python学习者所必备的知识点,作为Python入门,这部分知识点显得很庞杂,内容分支很多,大部分同学在刚刚学习时一头雾水。...