当前位置: 首页 > news >正文

docker的镜像与推送

 docker build

# 1. 基本构建命令(使用当前目录的 Dockerfile)
docker build .# 2. 指定 Dockerfile 路径和构建上下文
docker build -f /path/to/Dockerfile /path/to/build/context# 3. 为镜像设置名称和标签
docker build -t my-image:latest .# 4. 设置构建参数(ARG 变量)
docker build --build-arg APP_VERSION=1.0.0 -t my-app .# 5. 使用特定目标阶段(多阶段构建)
docker build --target builder-stage -t my-builder .# 6. 不缓存构建过程(强制重新执行所有步骤)
docker build --no-cache -t fresh-image .# 7. 移除中间容器(构建成功后自动删除)
docker build --rm=true -t clean-image .# 8. 设置内存限制和 CPU 配额
docker build --memory=1g --cpus=2.0 -t resource-limited .# 9. 使用特定平台构建(跨平台构建)
docker build --platform linux/arm64 -t arm-image .# 10. 高级用法:构建时传递 SSH 密钥
docker build --ssh default -t ssh-image .# 11. 压缩构建上下文(减少传输大小)
docker build --compress -t compressed-build .# 12. 设置超时时间(防止卡死)
docker build --timeout=30m -t safe-build .# 13. 组合使用示例:完整构建命令
docker build \-t my-registry/app:v2 \          # 镜像名称和标签-f dockerfiles/prod.Dockerfile \ # 指定 Dockerfile--build-arg NODE_ENV=production \ # 构建参数--target runtime-stage \         # 多阶段目标--no-cache \                     # 禁用缓存--platform linux/amd64 \         # 目标平台--memory=2g \                    # 内存限制.                                # 构建上下文
参数说明
-t / --tag设置镜像名称和标签(格式:name:tag,可多次使用)
-f / --file指定 Dockerfile 路径(默认:PATH/Dockerfile
--build-arg传递构建参数(覆盖 Dockerfile 中的 ARG
--target多阶段构建时指定目标阶段
--no-cache禁用构建缓存(从头开始构建)
--rm构建成功后删除中间容器(默认:true
--platform设置目标平台(如 linux/amd64linux/arm64
--compress使用 gzip 压缩构建上下文
--ssh允许构建时访问 SSH 代理(安全访问私有仓库)
--memory设置构建容器的内存限制
--cpus设置 CPU 配额(如 1.5 表示 1.5 个 CPU 核心)
--timeout设置构建超时时间(单位:s/m/h
.构建上下文路径(决定 COPY/ADD 的文件范围)

docker push

# 1. 基本推送命令(推送到 Docker Hub)
docker push username/image-name:tag# 2. 推送到私有仓库(需先登录)
docker push registry.example.com:5000/my-app:v1.0# 3. 推送多个标签(需分别执行)
docker push username/image-name:latest
docker push username/image-name:v1.2# 4. 使用不同格式的镜像标识
docker push my-image-id  # 使用镜像ID推送(不推荐)
docker push my-image@sha256:abc123...  # 使用摘要推送# 5. 强制推送(覆盖已有镜像)
docker push --force username/image-name:latest# 6. 禁用内容信任(开发环境使用)
docker push --disable-content-trust my-private-reg/image# 7. 组合使用示例
docker tag local-image:dev username/prod-image:v2.1  # 先打标签
docker push username/prod-image:v2.1                # 再推送# 8. 推送多平台镜像(需用 buildx 构建)
docker buildx build --platform linux/amd64,linux/arm64 -t username/multi-arch-image:latest --push .
参数说明
--disable-content-trust跳过镜像签名验证(默认开启)
--quiet / -q静默模式(只输出错误信息)
--force / -f强制覆盖远程同名镜像(谨慎使用)
--all-tags / -a注意:docker push 不支持此参数

 docker login

# 登录默认 Docker Hub 仓库(交互式输入认证信息)
docker login
# 注释:
#   执行后需手动输入用户名、密码
#   登录凭证默认保存在 `~/.docker/config.json`# 指定用户名登录 Docker Hub(密码手动输入)
docker login -u your_username
# 注释:
#   -u 指定用户名
#   执行后会提示输入密码(避免密码出现在命令历史)# 完整认证登录私有仓库
docker login -u user -p passwd registry.example.com:5000
# 注释:
#   -p 直接提供密码(注意安全隐患)
#   registry.example.com:5000 指定私有仓库地址
#   适合自动化脚本(但需确保密码安全)# 从文件读取密码登录(避免密码暴露)
cat ~/password.txt | docker login -u user --password-stdin registry.example.com
# 注释:
#   --password-stdin 从标准输入读取密码
#   cat 命令将密码文件内容通过管道传递
#   避免密码被记录在历史命令或日志中# 登录第三方公共仓库
docker login -u token_username -p access_token ghcr.io
# 注释:
#   ghcr.io GitHub Container Registry
#   access_token 通常为平台生成的访问令牌
#   适用于 GitHub/GitLab 等容器服务# 退出当前仓库登录
docker logout registry.example.com
# 注释:
#   删除本地存储的指定仓库凭证
#   不指定仓库则默认清除 Docker Hub 登录状态

 docker logout

# 登出默认 Docker Hub 仓库
docker logout
# 注释:清除当前用户登录 Docker Hub 的凭证 (~/.docker/config.json)# 登出私有仓库(指定仓库地址)
docker logout registry.example.com:5000
# 注释:
#   清除指定私有仓库的登录凭证
#   格式:仓库域名/IP + 端口号(非默认端口必须指定)# 登出 GitHub Container Registry
docker logout ghcr.io
# 注释:
#   清除 GitHub 容器仓库的凭证
#   适用于第三方容器仓库(GitLab 对应 gitlab.example.com)# 登出所有仓库(需手动实现)
# 注释:Docker 没有直接清除所有凭证的命令,需手动删除配置文件
rm ~/.docker/config.json
# 警告:此操作将删除所有容器仓库的登录凭证!

http://www.xdnf.cn/news/1173331.html

相关文章:

  • 2025最新Mybatis-plus教程(二)
  • Packmol聚合物通道模型建模方法
  • 半导体 CIM(计算机集成制造)系统
  • 高亮匹配关键词样式highLightMatchString、replaceHTMLChar
  • Google DeepMind发布MoR架构:50%参数超越传统Transformer,推理速度提升2倍
  • OpenLayers 快速入门(七)矢量数据
  • Linux 环境下安装 MySQL 8.0.34 二进制 详细教程 附docker+k8s启动
  • 亚马逊广告优化技巧:如何减少预算浪费
  • 软件性能测试全景图:十维质量保障体系
  • Redis--多路复用
  • CI/CD与DevOps集成方法
  • 删除远程分支上非本分支的提交记录
  • ElasticSearch基础数据管理详解
  • 基于Python(Django)+MongoDB实现的(Web)新闻采集和订阅系统
  • 数据结构自学Day13 -- 快速排序--“挖坑法”
  • Java冒泡排序的不同实现
  • 阿里云ODPS十五周年重磅升级发布:为AI而生的数据平台
  • Leetcode力扣解题记录--第54题(矩阵螺旋)
  • 负压产生电路分析
  • HakcMyVM-Luz
  • 前端实现可编辑脑图的方案
  • 【世纪龙科技】汽车专业数字课程资源-新能源汽车维护与故障诊断
  • 亚远景-传统功能安全VS AI安全:ISO 8800填补的标准空白与实施难点
  • ​多线程 + io_uring 实现高效大文件写入
  • MCP:UVX的安装
  • JS逆向基础( AES 解密密文WordArray和Uint8Array实战②)
  • 在线深凹槽深检测方法都有哪些 —— 激光频率梳 3D 轮廓检测
  • 【Word Press基础】创建一个动态的自定义区块
  • 探索大语言模型(LLM):提升 RAG 性能的全方位优化策略
  • 主要分布在背侧海马体(dHPC)CA1区域(dCA1)的时间细胞对NLP中的深层语义分析的积极影响和启示