Docker——自定义镜像
创始人
2024-03-26 14:30:35
0

目录

一、镜像结构

二、Dockerfile

 2.1 案例:基于Ubuntu镜像构建一个新镜像,运行一个java项目

   2.1.1 新建文件夹docker-demo

   2.1.2 拷贝docker-demo.jar到docker-demo

   2.1.3 将jdk8.tar.gz文件放到docker-demo目录

   2.1.4 将Dockerfile移动到docker-demo

   2.1.5 进入docker-demo

   2.1.6 构建镜像并运行

  2.2  java:8-alpine镜像,将一个Java项目构建为镜像

三、总结


我们自己的服务一定要自己制作镜像,基于dockerfile自己定义镜像

一、镜像结构

镜像:将应用程序及其需要的系统函数库、环境、配置、依赖打包而成

镜像是分层结构,每一层称为一个Layer

Entrypoint:入口,是镜像中应用启动的命令

其他:在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置

二、Dockerfile

下面开始自定义镜像

Dockerfile:就是一个文本文件,其中包含一个个的指令,用指令来说明要执行什么操作来构建镜像。每个指令都会形成一层Layer

 2.1 案例:基于Ubuntu镜像构建一个新镜像,运行一个java项目

  2.1.1 新建文件夹docker-demo

       放构建镜像所需要的资料

   2.1.2 拷贝docker-demo.jar到docker-demo

   2.1.3 将jdk8.tar.gz文件放到docker-demo目录

   2.1.4 将Dockerfile移动到docker-demo

          我们构建整个项目是基于Ubuntu镜像(这个镜像是干干净净的基础镜像,什么也没有)来做的,在这个的过程中主要是来安装jdk

 

   2.1.5 进入docker-demo

发现已经有了

   2.1.6 构建镜像并运行

 build:构建的意思

 -t :全名是-tag

 javaweb:我们起的一个名称,后面的1.0是版本,我们可以随便取

  . :dockerfile所代表的的目录 

 注意后面别忘了有一个点。  这个点是“  .” 前面有一个空格

 

跑起来

192.168.174.100 是我们虚拟机的静态地址   8090是我们配置的端口号   后面是路径

  2.2  java:8-alpine镜像,将一个Java项目构建为镜像

我们实现了上面这个文档,发现还是挺麻烦的

在刚刚的步骤中,只有下图框起来的是构架java项目的,因为java项目不需要安装

除了框起来的这句和最下面的两行,其余的都是安装jdk

我们的每一个项目都不需要执行上面完整的流程,在配置中,下面这些选中的不会改变,我们可以把这些构建好做一个镜像先放到那里,以后都在这个基础上进行构建,这就是分层的好处

 

然后java:8-alpine镜像就替我们做了这个东西,他是一个体积非常小的一个jdk镜像,如果我们构建项目的时候是以他为基础,则上面我们选中的都不用做了

将dockerfile文件修改成下面这个样子

 

 

我们来实验一下

 

三、总结

Dockerfile的本质是一个文件,通过指令描述镜像的构建过程

Dockerfile的第一行必须是FROM,从一个基础镜像来构建

基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,比如java:8-alpine

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...