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


    docker build

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

    docker build [OPTIONS] PATH | URL | -
    
    • 1

    这里的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 .
    
    • 1

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

    docker save

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

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

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

    docker save -o myapp.tar myapp
    
    • 1

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

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

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

    docker export -o mycontainer.tar mycontainer
    
    • 1

    这个命令会创建一个名为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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    1. 构建镜像:使用docker build命令来根据Dockerfile创建一个新的镜像。例如:
    docker build -t myapp:1.0 .
    
    • 1

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

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

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

    docker tag myapp:1.0 myusername/myapp:1.0
    
    • 1

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

    docker push myusername/myapp:1.0
    
    • 1

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

    docker pull myusername/myapp:1.0
    
    • 1

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


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

  • 相关阅读:
    防不胜防?网络钓鱼攻击常用手法盘点与防护建议
    Pyinstaller安装与使用
    GaussDB细粒度资源管控技术透视
    Dapr 的 gRPC组件(又叫可插拔组件)的提案
    C:宏定义中使用do{...}while(0)
    Lecture 13 File system(文件系统)
    东半球最佳的身份引擎服务,诚邀探索
    Open3D(C++)快速欧式聚类分割
    P10 属性分组
    毕业设计-论文写作笔记【毕设题目类型、论文写作细节、毕设资料】
  • 原文地址:https://blog.csdn.net/qq_29111047/article/details/134256079