Docker pull拉取镜像命令的入门教程
1. 基础概念
Docker镜像是构建容器的只读模板,存储在仓库(如Docker Hub)中。docker pull
用于从仓库下载镜像到本地。
2. 命令语法
docker pull [选项] <镜像名:标签>
- 镜像名:格式为
[仓库地址/]命名空间/镜像名
(默认仓库为Docker Hub) - 标签:指定版本(如
latest
,1.0.0
),默认latest
3. 基础操作
拉取官方镜像
docker pull nginx # 等价于 docker pull library/nginx:latest
拉取指定版本
docker pull nginx:1.25.3
拉取私有仓库镜像
# 登录私有仓库
docker login registry.example.com# 拉取镜像
docker pull registry.example.com/myapp:v2
4. 高级用法
多架构镜像
# 拉取支持多种架构的镜像(如amd64/arm64)
docker pull --platform linux/amd64 nginx:latest
禁用缓存
docker pull --disable-content-trust=false nginx # 强制校验镜像签名
进度条控制
docker pull --quiet nginx # 静默模式
5. 验证镜像
# 查看本地镜像列表
docker images# 检查镜像详细信息
docker inspect nginx:latest
6. 常见问题
问题1:镜像拉取失败
Error response from daemon: manifest for nginx:latest not found
解决方案:
- 检查镜像名拼写
- 尝试指定完整路径:
docker pull library/nginx
- 清除本地缓存:
docker system prune -a
问题2:权限不足
Error response from daemon: Get https://registry.example.com/v2/: unauthorized
解决方案:
docker login registry.example.com
# 或使用--username参数
docker pull --username=yourname registry.example.com/myapp
问题3:网络超时
Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
解决方案:
- 配置镜像加速器(如阿里云):
保存至{"registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"] }
/etc/docker/daemon.json
后重启服务:sudo systemctl restart docker
7. 最佳实践
- 明确指定标签:避免使用
latest
标签,改用语义化版本(如v1.2.3
) - 定期清理无用镜像:
docker image prune -a # 删除未使用的镜像
- 使用镜像扫描:
docker scan nginx:latest # 检查漏洞
8. 示例流程
# 1. 搜索可用镜像
docker search nginx# 2. 拉取指定版本
docker pull nginx:1.25.3# 3. 验证镜像
docker images | grep nginx# 4. 运行容器测试
docker run -d --name web nginx:1.25.3