一句话总结:装好Docker,敲一行命令,镜像就到手。就这么简单。


一、前言:为什么写这篇教程?

新手学Docker,第一步就是拉镜像。但网上很多教程一上来就让你做一堆复杂操作,反而把人劝退:

❌ 改系统环境变量

❌ 配一堆JSON文件

❌ 设置代理、改注册表

❌ 堆砌一大段看不懂的参数

结果往往是镜像没拉下来,电脑配置先被折腾乱了。

这篇教程的原则很简单:

✅ 不改环境变量,不动系统配置,全程复制粘贴命令就能跑。

二、前置准备:确认Docker能正常工作

在拉镜像之前,我们先花30秒确认Docker已经装好、能正常运行,不用额外配置任何参数。

第1步:检查Docker是否安装

打开你的终端(Windows用PowerShell / CMD,Mac/Linux用Terminal),输入以下命令:

# 查看Docker版本,能显示版本号就说明装好了 
docker --version

你应该看到类似这样的输出:

Docker version 27.4.1, build b9d17ea
⚠️ 如果提示 docker: command not found,说明还没装Docker。

去官网 https://www.docker.com/products/docker-desktop 下载安装,一路点「下一步」就行,全程不用改配置。

第2步:检查Docker是否在运行

# 查看Docker运行状态的详细信息
​​​​​​​ docker info

正常输出(节选):

Client: 
   Version: 27.4.1 
Server: 
    Containers: 0 
    Running: 0 
    Images: 0

⚠️ 如果提示 Cannot connect to the Docker daemon,说明Docker没启动。

Windows / Mac:找到Docker Desktop图标,双击打开,等左下角小鲸鱼变绿。

Linux:运行 sudo systemctl start docker

第3步:跑一个测试命令(可选但推荐)

# Docker官方提供的测试镜像,专门用来验证安装是否成功 
docker run hello-world

看到这行文字就说明一切正常:

Hello from Docker! This message shows that your installation appears to be working correctly.

✅ 三步都过了?恭喜,准备工作完成,下面开始正式拉镜像。

三、核心拉取命令:就一个docker pull

拉镜像的命令只有一个,记住它就够了,不用记复杂参数:

docker pull 镜像名字

就像在应用商店搜索App然后点「下载」一样简单。下面拆解三种最常见的用法,覆盖绝大多数场景。

用法1:最基础的拉取(拉最新版)

# 拉取Nginx(一个常用的网页服务器镜像)

# 不写版本号,默认拉最新版(latest)

docker pull nginx

等价于:

docker pull nginx:latest

💡 latest就是「最新版」的意思,不写的话Docker会自动帮你加上。

用法2:拉取指定版本

实际工作中,我们经常需要固定版本,避免版本更新带来的兼容问题,而不是盲目用最新版。
 

# 拉取Nginx的1.24版本

# 冒号后面跟版本号(Docker里叫"tag",可以直接理解成版本号)

docker pull nginx:1.24
# 拉取Python 3.9的精简版

docker pull python:3.9-slim
# 拉取MySQL 8.0

docker pull mysql:8.0

💡 怎么知道有哪些版本可以拉?去Docker Hub搜索镜像名,点进去就能看到所有可用的版本标签。

用法3:从指定仓库拉取

Docker默认从官方仓库(Docker Hub)拉取。如果镜像在其他平台,直接写完整地址即可,不用改任何配置。

# 从其他镜像仓库拉取(比如阿里云)

# 不需要改环境变量,直接写完整地址

docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:latest

🔑 注意:这里完全不需要修改环境变量或配置文件,直接在命令里写完整地址就行了,方便又快捷。

命令速查表

想做什么

命令

拉最新版

docker pull nginx

拉指定版本

docker pull nginx:1.24

从指定仓库拉

docker pull 仓库地址/镜像名:版本

看本地有哪些镜像

docker images

删除一个镜像

docker rmi 镜像名

四、实操演示:跟我一步步来

下面我们完整地走一遍「拉取Nginx镜像」的流程,每一步都可以直接复制命令执行,零难度。

实操第1步:拉取镜像

docker pull nginx

你会看到这样的输出(实时显示下载进度):

Using default tag: latest

latest: Pulling from library/nginx

2cc3ae149d28: Pull complete

a97f9034bc9: Pull complete

9571e65a55a: Pull complete

0b432c035c35: Pull complete

24436676f2de: Pull complete

928cc9acedf0: Pull complete

ca6fb48c6db4: Pull complete

Digest: sha256:56b388b0d79c738f4cf51bbaf184a14fab19337f4819ceb2cae7d94100262de8 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest

逐行解释(看一眼就行,不用死记):

Using default tag: latest ← 告诉你:没写版本号,
自动拉latest latest: Pulling from library/nginx 
← 正在从官方仓库拉取 2cc3ae149d28: Pull complete 
← 镜像是分层下载的,每行代表一层,全部complete即下载完成 
Digest: sha256:56b388... ← 镜像的唯一身份证号,日常使用不用管 
Status: Downloaded newer image ← 最终状态:
下载成功 docker.io/library/nginx:latest ← 镜像的完整地址

实操第2步:确认镜像已下载

# 列出本地所有已下载的镜像

docker images

输出示例:

REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 92b11f67642b 2 weeks ago 187MB

列名

含义

例子中的值

REPOSITORY

镜像名字

nginx

TAG

版本标签

latest

IMAGE ID

镜像的短ID

92b11f67642b

CREATED

镜像创建时间

2 weeks ago

SIZE

镜像大小

187MB

实操第3步:拉取指定版本试试

# 再拉一个指定版本的Nginx 
​​​​​​​docker pull nginx:1.24-alpine

💡 alpine是一个超轻量的Linux系统,基于它的镜像体积很小,适合练手和生产环境,能节省存储空间。

输出示例:

1.24-alpine: Pulling from library/nginx 
c6a83fedfae6: Pull complete 
e34f1650ab30: Pull complete 
8fae2cfbc498: Pull complete ...
 Status: Downloaded newer image for nginx:1.24-alpine

再执行docker images查看本地镜像:

REPOSITORY TAG IMAGE ID CREATED SIZE nginx 
latest 92b11f67642b 2 weeks ago 187MB 
nginx 1.24-alpine a24bb4013296 3 months ago 41.1MB

对比就能发现,alpine版本只有41MB,比latest版本小了一大半。

实操第4步:快速验证镜像能不能用

# 用刚拉下来的Nginx镜像跑一个容器

# -d 表示在后台运行,-p 8080:80 表示把容器的80端口映射到本机的8080端口

docker run -d -p 8080:80 nginx

输出一串字符,这是容器ID:

a3f5e2d1b4c8e7f6a9b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4

现在打开浏览器,访问:http://localhost:8080

看到 "Welcome to nginx!" 页面,就说明镜像拉取成功、并且能正常运行了!🎉

用完之后停掉容器,释放资源:
 

# 查看正在运行的容器

docker ps
# 停掉容器(用容器ID的前几位就行,不用写全)

docker stop a3f5

五、常见问题与解决(不用改环境变量!)

❌ 问题1:拉取超时 / 网速特别慢

报错信息类似:

Error response from daemon: Get "https://registry-1.docker.io/v2/"

: net/http: request canceled while waiting for connection

原因:Docker Hub服务器在国外,网络不稳定、延迟高。

解决办法(选一个即可,全程不用改系统环境变量):

方法A:用Docker Desktop自带的镜像加速(图形界面操作)

打开Docker Desktop → 点击右上角设置图标 → 左侧选Docker Engine → 在JSON配置中加入以下内容:

{ "registry-mirrors": [ "https://docker.1ms.run", "https://docker.xuanyuan.me" ] }

点击Apply & Restart重启Docker即可。

方法B:命令中直接写国内镜像源地址(零配置,即用即走)

# 不改任何配置,直接从指定地址拉取 
​​​​​​​docker pull docker.1ms.run/library/nginx:latest

💡 这种方式完全不需要修改任何配置文件,命令执行完就结束,不留多余配置。

方法C:多试几次

# 网络波动导致失败很常见,重新执行命令就行

# Docker支持断点续传,不会重复下载

docker pull nginx

❌ 问题2:镜像不存在

报错:

Error response from daemon: pull access denied for ngix,

repository does not exist or may require 'docker login'

原因:镜像名字拼写错误,比如把nginx打成了ngix。

解决:

# 1. 检查拼写,修正名字 docker pull nginx

# ✅ 正确 
docker pull ngix

# ❌ 错误

# 2. 去Docker Hub官网搜索核对镜像名

# 官网地址:https://hub.docker.com/

❌ 问题3:权限不够(Linux系统常见)

报错:

Got permission denied while trying to connect to the Docker daemon socket

解决:

# 方法1:命令前面加sudo,临时提升权限 sudo docker pull nginx

# 方法2:把当前用户加入docker用户组(一劳永逸)

sudo usermod -aG docker $USER

执行完方法2后,注销重新登录,后续使用就不用再加sudo了。

❌ 问题4:磁盘空间不足

报错:

no space left on device

解决:

# 查看Docker占用的磁盘空间 docker system df

# 一键清理无用镜像、缓存、停止的容器,释放空间

docker system prune

执行后会弹出确认提示,输入y回车即可。

❌ 问题5:拉到一半断连了

完全不用担心,直接重新执行同一条命令:

docker pull nginx

Docker会自动跳过已下载完成的部分,只下载剩余内容,实现断点续传。

六、实用小贴士

🔹 贴士1:查看本地所有镜像

docker images

只想查看某个镜像的所有版本:

# 只查看nginx相关的镜像 
​​​​​​​docker images nginx

🔹 贴士2:删除无用镜像,释放空间

# 按名字+版本删除 docker rmi nginx:1.24-alpine
# 按镜像ID删除(ID写前几位即可)
docker rmi 92b11f

🔹 贴士3:一次拉取多个镜像

# 用&&连接多条命令,一次性执行
docker pull nginx && docker pull redis && docker pull mysql:8.0

🔹 贴士4:查看镜像详细信息

# 查看镜像完整信息 
​​​​​​​docker inspect nginx

只想查看镜像大小,简化输出:

# 格式化输出,只显示名称、版本、大小

docker images --format "{{.Repository}}:{{.Tag}} → {{.Size}}"

🔹 贴士5:设置命令快捷方式

如果觉得命令太长,可以设置别名,这只是命令快捷方式,不是环境变量:

# Mac / Linux 当前窗口生效

alias di='docker images' alias dp='docker pull'

# 设置后可简写 di

# 等价于docker images dp nginx

# 等价于docker pull nginx

七、新手必看:镜像拉取注意事项

掌握核心命令之余,牢记这些注意事项,能避开绝大多数坑,全程不用改动系统环境变量,省心又安全。

1. 镜像版本慎选,别盲目用latest

latest代表最新版,虽然拉取方便,但版本会随时更新,很容易出现兼容问题,导致后续运行容器报错。正式使用、学习练手,优先选用固定版本号的镜像,比如nginx:1.24、mysql:8.0,稳定性更强。

2. 杜绝重复拉取,节省时间和空间

本地已有对应版本的镜像,再次执行docker pull命令,Docker不会重复下载,只会检查并更新镜像。没必要反复拉取同一个镜像,占用磁盘空间,拉取前先用docker images命令查看本地镜像,避免无效操作。

3. 镜像名称务必准确,区分大小写

Docker镜像名称严格区分大小写,而且拼写不能出错,比如把nginx写成ngix、mysql写成mysq,都会提示镜像不存在。不确定名称和版本时,先去Docker Hub官网搜索核对,再执行拉取命令。

4. 网络波动不用慌,支持断点续传

拉取过程中断网、卡顿,不用删除本地缓存重新开始,直接重新执行docker pull命令即可。Docker采用分层下载,会自动跳过已下载完成的分层,只下载缺失部分,不用从头等待。

5. 慎用精简版镜像,新手优先完整版

alpine、slim等精简版镜像体积小、占用空间少,但缺少部分依赖库,新手使用时容易出现缺少组件、运行报错的问题。建议新手先用完整版镜像练手,熟练后再改用轻量版镜像。

6. 及时清理闲置镜像,释放磁盘空间

镜像会占用大量磁盘空间,长期不清理容易导致磁盘爆满。不用的镜像及时用docker rmi命令删除,定期执行docker system prune清理缓存和无用文件,保持Docker运行流畅。

7. 不随意修改系统配置,守护新手环境

全程遵循教程原则,不改动系统环境变量,不随意修改Docker核心配置文件。遇到拉取慢、超时等问题,优先用命令直连国内源、重试命令解决,不乱改配置弄坏运行环境。

最后总结:记住这几条命令就够了

docker pull nginx # 拉取最新版镜像

docker pull nginx:1.24 # 拉取指定版本

docker images # 查看本地镜像

docker rmi nginx # 删除镜像

docker system prune # 清理垃圾,释放空间

就这5条命令,足够应对日常90%的镜像拉取场景。全程不用改环境变量、不用配复杂文件,复制粘贴就能运行。

📌 最后提醒:遇到问题别慌,docker pull命令可以反复执行,不会重复下载已有内容。网络不好就多试几次,或者把国内源地址直接写进命令里,简单又高效。


作者声明:本文为原创技术博客,禁止未经授权搬运、抄袭。如果文章对你有帮助,欢迎点赞、收藏、关注,后续会更新更多Docker入门干货!

更多推荐