美文网首页
Docker镜像构建

Docker镜像构建

作者: fantasy028 | 来源:发表于2023-02-14 13:15 被阅读0次

一. Docker镜像构建原理

关于Docker镜像的构建及本原理:

(1). 首先,基于一个镜像,启动一个容器;

(2). 接着,在容器中,执行相应的操作,容器记录下这些操作结果,并记录到容器存储层中;

(3). 将容器存储层中记录的变更commit到新的镜像层,并添加到原镜像中。

二. Docker镜像的构建

Docker构建镜像,通常有两种方式

  1. 通过docker commit命令,基于一个已存在的容器构建镜像。

此种方式,构建的镜像存在的问题:1. 包含了构建过程中产生的大量无用文件,体积臃肿;2. 会丢失所有镜像的操作历史,不利于维护;

因此,docker commit操作方式,通常涌入如下两种场景:

a. 构建临时测试镜像

b. 用于容器现场的保留,比如容器被入侵之时

docker commit构建镜像的基本命令格式为:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

其中,OPTIONS为可选参数,CONTAINER为容器的名称 REPOSITORY为要生成的镜像名称,:TAG用于指定镜像标记,可以理解为版本标记。其中的REPOSITORY如果没有指定讲生成一个匿名带HASH ID的镜像。一般建议对[REPOSITORY[:TAG]]还是应当设置,以便于镜像识别。

为了能够更直观的理解如何通过docker commit命令来构建镜像,这里来一个小案例, 具体包含三条指令,如下:

docker run --name ubuntutest ubuntu:23.04 /bin/echo "Hello"

docker commit ubuntutest ubuntutest:0.0.1

docker run --name ubtest ubuntutest:0.0.1

最后,我们将看到输出

Hello

  1. 通过Dockerfile文件,使用docker build命令来构建镜像

通过Dockerfile构建的镜像,操作流程可以通过docker image history image_name查看。对于如何通过Dockerfile构建docker镜像,包含两部分:Dockerfile文件的编写和docker build命令的操作。Dockerfile文件的编写以后新开文章介绍,这里先介绍一下docker build命令。

首先是命令的用法格式:

docker build [OPTIONS] PATH | URL | -

从语法格式来讲,build 后续包含了两部分:可选的OPTIONS配置 和 Dockerfile文件路径配置。其中路径配置的可以是文件路径也可以是资源的URL路径,改参数一般而言为Dockerfile所在的上级路径。在熟悉了,基本格式之后,我们要做的就是逐步熟悉OPTIONS选项了。对于OPTIONS参数,关注一下如下两个参数的配置:

  • -t, --tag 此参数主要用骨设置生成镜像的镜像名及设置一个可选的tag名。参数值格式为name:tag。此参数的设置能够提高镜像的识别度。
  • -f, --file 用于指定Dockerfile文件名,默认为路径下的Dockerfile, 如果我们的文件名并非Dockerfile则可以通过此参数指定。

对于docker build这里也附上一个应用实例,定义一个Dockerfile文件,文件类容如下:

FROM nginx

RUN echo '<h1>Hello, Welcome!</h1>' > /usr/share/nginx/html/index.html

接着我们执行命令:docker build -t nginx:v3 .然后通过docker images命令查看,将看到一个TAG为v3的nginx镜像。

最后,我们执行命令docker run --name web2 -d -p 80:80 nginx:v2待容器启动后,在浏览器打开http://localhost即可看到网页显示为:

image

到此,Docker镜像构建的两种方式,就介绍完了。带后续有时间了,下一篇将探索Dockerfile文件的编写。

相关文章

  • python基于Ubuntu下开发环境的准备

    利用Docker搭建Ubuntu环境 安装Docker 基于Dockerfile构建ubuntu镜像 构建镜像 查...

  • Learning Docker Part 002 Docker

    构建镜像 Docker提供了两种构建镜像的方法: docker commit命令 Dockerfile 构建文件 ...

  • Docker部署(二):MySQL数据库

    Docker 容器构建 使用Dockerfile构建镜像 使用官方提供的Docker镜像 所谓Dockerfile...

  • Docker镜像

    镜像: 获取镜像: 构建制作镜像.docker自带 docker commitdockerfile (推荐)封装...

  • 《第一本Docker书》笔记

    初步 确认Docker信息: 镜像 查看镜像 镜像搜索 获取镜像 构建镜像 docker commit Docke...

  • Docker的一些常用命令

    1、镜像命令: docker images 列出所有镜像 docker build 构建镜像 do...

  • Docker

    [TOC] 使用 Docker 镜像 下载镜像 列出镜像 构建镜像 删除本地镜像 操作 Docker 容器 容器是...

  • (四)Docker镜像与仓库之一(3)——构建镜像

    Docker官网 Docker文档地址 构建镜像的好处: 1.构建docker镜像,可以保存对容器的修改,方便...

  • docker镜像

    Docker镜像是构建docker容器的基础,容器是docker镜像的运行的实例。构建镜像只用三条命令就可以搭建一...

  • Java读取HDFS文件

    最近在实现一个功能:用户在前端页面触发Docker镜像构建,后端监听Docker镜像的构建状态,并将Docker镜...

网友评论

      本文标题:Docker镜像构建

      本文链接:https://www.haomeiwen.com/subject/ausekdtx.html