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

Docker 从构建开始导出一个镜像

docker build

docker build命令用于从Dockerfile创建一个镜像。它的基本格式如下:

docker build [OPTIONS] PATH | URL | -

这里的PATH是Dockerfile所在的路径,URL是一个Git仓库地址,-表示从标准输入读取Dockerfile。

docker build命令的一些常用选项包括:

  • -t, --tag: 为新创建的镜像指定一个名称和标签,格式为name:tag。如果不指定标签,那么默认标签为latest
  • --file, -f: 指定要使用的Dockerfile路径。如果不在当前目录下,需要指定相对路径或绝对路径。
  • --no-cache: 创建镜像时,不使用缓存。如果你更改了Dockerfile,那么建议使用这个选项,以确保所有步骤都是最新的。
  • --rm: 构建成功后删除中间容器。这是默认行为,如果你想保留中间容器,可以使用--rm=false

例如,如果你有一个Dockerfile在当前目录下,你可以使用以下命令来创建一个名为myapp的镜像:

docker build -t myapp .

这里的.表示当前目录,Docker会在这个目录下寻找Dockerfile。

docker save

Docker提供了两个命令来导出镜像:docker savedocker export。这两个命令的功能类似,但是有一些重要的区别。

  1. docker save: 这个命令用于将一个或多个镜像保存为一个tar归档文件。这个命令保存的是完整的镜像,包括所有的层、标签和版本信息。你可以使用docker load命令来加载这个tar归档文件,恢复镜像。docker save的基本格式如下:
docker save [OPTIONS] IMAGE [IMAGE...]

例如,你可以使用以下命令来保存一个名为myapp的镜像:

docker save -o myapp.tar myapp

这个命令会创建一个名为myapp.tar的文件,包含myapp镜像的所有信息。

  1. docker export: 这个命令用于将一个容器的文件系统导出为一个tar归档文件。这个命令保存的只是容器的当前状态,不包括历史和元数据。你可以使用docker import命令来从这个tar归档文件创建一个新的镜像。docker export的基本格式如下:
docker export [OPTIONS] CONTAINER

例如,你可以使用以下命令来导出一个名为mycontainer的容器:

docker export -o mycontainer.tar mycontainer

这个命令会创建一个名为mycontainer.tar的文件,包含mycontainer容器的当前文件系统。

总的来说,如果你想保存完整的镜像信息,应该使用docker save。如果你只关心容器的当前状态,可以使用docker export

创建自己的镜像推送,拉取

创建和推送自己的Docker镜像需要以下步骤:

  1. 创建Dockerfile:Dockerfile是一个文本文件,其中包含了一系列命令,这些命令用于创建一个新的Docker镜像。例如,一个简单的Dockerfile可能如下:
# 使用官方的Python运行时作为父镜像
FROM python:3.7-slim# 设置工作目录
WORKDIR /app# 将当前目录的内容复制到容器的/app目录中
ADD . /app# 安装需要的包
RUN pip install --no-cache-dir -r requirements.txt# 设置环境变量
ENV NAME World# 运行app.py当容器启动时
CMD ["python", "app.py"]
  1. 构建镜像:使用docker build命令来根据Dockerfile创建一个新的镜像。例如:
docker build -t myapp:1.0 .

这个命令会在当前目录下查找Dockerfile,并创建一个名为myapp,标签为1.0的镜像。

  1. 推送镜像:首先,你需要在Docker Hub或其他Docker镜像仓库注册一个账号。然后,使用docker login命令来登录你的账号。例如:
docker login

然后,你需要将你的镜像标记为仓库的一部分。例如,如果你的Docker Hub用户名是myusername,你可以使用以下命令来标记你的镜像:

docker tag myapp:1.0 myusername/myapp:1.0

最后,使用docker push命令来推送你的镜像到仓库:

docker push myusername/myapp:1.0

拉取镜像的命令是docker pull,例如:

docker pull myusername/myapp:1.0

这个命令会从仓库中拉取你的镜像。


分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za

http://www.lryc.cn/news/222046.html

相关文章:

  • 案例研究|腾讯音乐娱乐集团与JumpServer共探安全运维审计解决方案
  • 如何卸载在linux下通过rpm安装的mysql
  • docker复制镜像文件
  • 自动驾驶学习笔记(六)——Apollo安装
  • 四阶龙格库塔与元胞自动机
  • Mac安装opencvJava踩坑
  • YOLOv8-Pose推理详解及部署实现
  • django+drf+vue 简单系统搭建 (1) - django创建项目
  • 各种NoSQL数据库
  • 基于8086家具门安全控制系统设计
  • k8s:kubectl 详解
  • 壹基金防灾减灾宣传进社区 提升家庭安全能力
  • 抖音自动发评论软件下载方法与其使用方法与案例分析分享
  • Java代码实现当前时间增加3个月
  • 互联网系统安全(一)
  • C# TabControl实现为每一个TabPage添加关闭按钮
  • Win10系统下torch.cuda.is_available()返回为False的问题解决
  • 零代码编程:用ChatGPT批量将Mp4视频转为Mp3音频
  • 微服务项目,请求从发出到后端处理器的历程
  • pandas教程:String Manipulation 字符串处理和正则表达式re
  • Apache Doris 是什么
  • 【NeurIPS 2020】基于蒙特卡罗树搜索的黑箱优化学习搜索空间划分
  • 面试题:线上MySQL的自增id用尽怎么办?
  • Java集合框架:Collection 与 Map 接口深度解析
  • qt多线程例子,不断输出数字
  • 基于厨师算法的无人机航迹规划-附代码
  • 设计模式的六大原则
  • 原文远知行COO张力加盟逐际动力 自动驾驶进入视觉时代?
  • 【公益案例展】火山引擎公益电子票据服务——连接善意,共创美好
  • postman中文乱码