Docker新手入门之四:Docker镜像和仓库的基本使用

本文深入探讨Docker镜像,包括其概念、管理、构建和存储。讲解了如何查看、拉取、查找、构建及推送镜像,重点介绍了Dockerfile的使用和Docker Hub的自动构建。此外,还涵盖了删除镜像和搭建私有Registry的知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载过程中,图片丢失,代码显示错乱。

为了更好的学习内容,请访问原创版本:

https://www.missshi.cn/api/view/blog/5a6327c00a745f6335000004

Ps:初次访问由于js文件较大,请耐心等候(5s左右)

 

 

在之前的文章中,我们已经讲解了什么是Docker,以及如何运行Docker容器。
接下来,我们将要继续讲解Docker镜像的相关概念与操作。
Docker镜像是启动容器的基石。
本文中将会讲解如何管理、修改镜像以及镜像存储仓库Registry的相关知识。

什么是Docker镜像

Docker镜像是由文件系统叠加而成。 
最底端是一个文件引导系统,即bootfs。Docker用户不会与引导文件系统有直接的交互。 
Docker镜像的第二层是root文件系统rootfs,通常是一种或多种操作系统,例如ubuntu等。 
在Docker中,文件系统永远都是只读的,在每次修改时,都是进行拷贝叠加从而形成最终的文件系统。 
Docker称这样的文件为镜像。一个镜像可以迭代在另一个镜像的顶部。位于下方的镜像称之为父镜像,最底层的镜像称之为基础镜像。最后,当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器。 
title 
Docker的这种机制我们称之为写时复制。

查看镜像列表

接下来,我们将详细了解一下关于镜像相关的一些操作。 
首先是查询镜像列表:

 
  1. sudo docker images

该命令可以用于查找当前系统中所有存在的镜像列表。 
Ps:本地镜像默认保存在Docker宿主机的/var/lib/docker目录下。 
所有的镜像都是保存在仓库中,而仓库位于Registry中。默认的Registry是Docker公司运营的Docker Hub。 
每个镜像仓库都可以存放很多的镜像。 
例如ubuntu镜像仓库存放着各种不同版本的Ubuntu镜像。 
使用如下命令可以拉取镜像:

 
  1. sudo docker pull ubuntu

上述命令会拉取所有版本的ubuntu镜像到本地。 
为了区分同一个仓库中不同的镜像,Docker提供了一种tag的功能。 
我们可以给每个版本的镜像添加一个唯一的tag来标识该镜像。此时,镜像的名称如下:仓库名称:tag。 
我们在运行镜像或拉取镜像时,可以直接指定对应的标签。例如:

 
  1. sudo docker run -it ubuntu:16.04 /bin/bash

默认情况下,在run中如果没有指定镜像的tag,将会默认去寻找latest标签的镜像。 
除了仓库名称和tag以外,我们还可以将镜像分为两个类别:一种是Docker用户自己创建的用户仓库,还有一种是Docker官方维护的顶层仓库。 
用于仓库的完整名称是由用户名称/仓库名称组成的。 
而对于顶层仓库而言,则没有用户名称,直接是仓库名称。 
总结一下,对于一个仓库而言,完成的格式如下:[用户名称/]仓库名称:tag

拉取镜像

在使用docker run从一个镜像启动容器时,Docker首先会现在本地查找是否存在该镜像。如果在本地没有找到该镜像,则会先从Dockers Hub上下载该镜像后在运行。 
Ps:如之前所说,如果没有指定tag,则默认使用latest标签。

查找镜像

我们如果想要从Docker Hub查找有哪些公共的可用镜像时,可以使用如下命令:

 
  1. sudo docker search keywords

构建镜像

在上面的内容中,我们已经了解了如下查询,拉取,运行镜像,那么接下来我们将会继续学习如何修改、更新和管理自己的镜像。 
构建镜像的方式有以下两种:

  1. 使用docker commit构建
  2. 使用docker build和Dockerfile文件来构建

相比较而言,我们更加推荐使用方法2来构建。因为方法2更加的灵活和强大。 
Ps:我们通常并不是从零开始构建一个镜像,而是从一个base镜像开始修改构建的。 
在接下来的内容中,我们首先将会简单的讲解一下如何通过docker commit来修改镜像。但更多的精力将会用于详细讲解如何利用dockerfile来构建镜像。

创建docker hub账号

在构建镜像中,很重要的一环就是共享和发布镜像。 
通常,我们都会将镜像推送到Docker Hub来共享镜像。 
我们需要进入Docker Hub首先注册一个账号:https://hub.docker.com/ 
注册完成后,我们可以通过命令行在本地绑定对应的Docker Hub账号。

 
  1. sudo docker login
  2. # Username: ***
  3. # Password:
  4. # Email: ***
  5. # Login Succeed

使用docker commit命令来创建镜像

创建Docker镜像的第一种方法就是通过commit命令。 
流程简介如下:

  1. 根据某个镜像创建一个容器
  2. 对该容器进行一些修改
  3. 提交该容器并生成一个新的镜像。

示例:

 
  1. sudo docker run -it ubuntu /bin/bash
  2. root@b3f9427a5039:/# apt-get -yqq update
  3. root@b3f9427a5039:/#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WangZhe0912

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值