Docker ——拉取镜像

本文详细介绍了如何从DockerHub拉取所需镜像,包括默认情况下使用docker pull命令从官方仓库获取镜像的过程,以及在遇到镜像不存在时的错误处理。此外,针对国内用户,还提供了配置阿里云加速器的方法,以提高镜像拉取速度。

相关知识:

再DocKer的官方镜像仓库DocKer Huib中保存了各种各样的镜像,这些镜像中保存了各种各样的运行环境。例如包含linux运行环境的“ubuntu”镜像、“centos”镜像、“busybox”镜像等,提供数据库服务的“mysql”镜像、“Oracle”镜像、“redis”镜像等。提供程序运行环境的“java”镜像、“python”镜像、“C++”镜像等等。基本上我们日常工作所需的运行环境在DocKer Hub中会有对应的镜像。

但是安装完Docker之后,本地是没有任何镜像的。下面呢,就介绍如何从Docer Hub中拉取镜像 

获取镜像:

默认情况下,使用docker pull 命令,会从官方的Docker Hub库中将镜像拉取到本地

docker pull [options] <仓库名>:<标签>

其中,

docker pull : Docker拉取镜像的命令关键词

[options]:命令选项

仓库名:仓库名的格式一般为<用户名>/<软件名>对于Docker Hub,如果不指定用户名,则默认为librery,即官方镜像。

标签:标签是区分镜像不同版本的一个重要参数,<仓库名>:<标签>会确定唯一一个镜像。则默认为latest

例如,我们要从Docker Hub官方仓库拉取一个Ubuntu 14.04的官方镜像,其语句如下:

docker pull ubuntu:14.04`

docker pull 命令背后的工作

首先,如果tag 值为空,即没有指定标签,就会使用默认tag,也就是latest,如果tag值不为空,就使用指定的tag

然后,默认情况下,会在Docker hub 中寻找名为“repoName”的仓库,如果仓库不存在,返回错误信息。如果仓库

存在,就从仓库中拉取对应tag的镜像。例如如果执行docker pull ubuntu:14.04,那么将从“ubuntu”仓库中拉取tag14.04的镜像,而如果执行docker pull ubuntu,会从“ubuntu”仓库中拉取taglatest的镜像
(在Docker Hub中有很多个镜像仓库,一般情况下会将同一类型的镜像放在同一个仓库中,例如在一个ubuntu仓库中由很多个ubuntu镜像组成,包括ubuntu:14.04ubuntu:16.04`ubuntu:latest等等镜像)

docker pull的两个基本实例

执行docker pull ubuntu之后,会有下面的执行结果。(执行命令之前,本地并不存在ubuntu:latest镜像)。

如下图所示,因为没有显示地指定tag,所以就使用默认tag,也就是latest。于是会在Docker Hub中从ubuntu仓库中拉取ubuntu:latest镜像,当将镜像一层层下载完成后,存储到本地。

[root@localhost Desktop]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
e0a742c2abfd: Pull complete 
486cb8339a27: Pull complete 
dc6f0d824617: Pull complete 
4f7a5649a30e: Pull complete 
672363445ad2: Pull complete 
Digest: sha256:84c334414e2bfdcae99509a6add166bbb4fa4041dc3fa6af08046a66fed3005f
Status: Downloaded newer image for ubuntu:latest
[root@localhost Desktop]#

那从Docker Hub中拉取一个不存在的镜像会怎么样呢?如下所示,执行docker pull aaa后,会在Docker Hub中查找aaa仓库,由于不存在aaa仓库,所以没有找到,返回了错误信息。

[root@localhost Desktop]# docker pull aaa
Using default tag: latest
Error response from daemon: repository aaa not found: does not exist or no pull access

设置镜像加速器

由于“伟大的墙”的原因,在国内从Docker Hub中拉取镜像的速度可能会比较慢,国内很多云服务商都提供了镜像加速器服务,例如阿里、网易等等。以Linux系统配置阿里云加速器为例,只需要将下面的命令复制到Linux的终端,以root用户的身份执行之后,就成功的配置了阿里云加速器了!

#以root用户执行以下操作
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{#下面的URL可以替换为你自己的阿里云加速地址
"registry-mirrors": ["https://jxus37ad.mirror.aliyuncs.com "]
}
EOF
systemctl daemon-reload
systemctl restart docker

 

### 配置 Docker 使用自定义镜像源 为了使 Docker 能够从指定的镜像镜像,通常的做法是修改 Docker 的配置文件来设置镜像加速器。对于国内用户来说,可以使用阿里云、腾讯云或其他提供 Docker Hub 加速服务的平台。 #### 修改 Docker 守护程序配置文件 在大多数 Linux 发行版上,默认情况下 Docker 的守护进程配置文件位于 `/etc/docker/daemon.json`。如果该文件不存在,则可以根据需要创建它。以下是具体的配置方法: ```json { "registry-mirrors": ["https://<your_mirror_source>"] } ``` 其中 `<your_mirror_source>` 是所选镜像源的具体 URL 地址[^1]。 #### 更新 CentOS 或 RHEL 系统中的 Yum 源 (针对已停服版本) 鉴于当前日期为2024年10月22日,CentOS 7 已经停止官方支持其 yum 源更新。因此,在基于这些系统的环境中工作时,可能还需要调整容器内部的基础软件包管理工具——YUM 的配置以指向新的或社区维护的支持库。这一步骤可以通过编辑容器内的 `/etc/yum.repos.d/CentOS-Base.repo` 文件完成,替换原有的 baseurl 和 mirrorlist 字段为目标仓库地址[^2]。 #### 测试新配置的有效性 保存更改后的 `daemon.json` 并重启 Docker 服务以应用新的设置。之后尝试执行如下命令验证是否可以从设定好的镜像源正常获资源: ```bash docker pull hello-world ``` 此操作会下载一个小巧简单的测试镜像用于确认网络连接无误以及镜像功能可用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值