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

使用dockerfile来构建一个包含Jdk17的centos7镜像(构建镜像:centos7-jdk17)

文章目录

  • 1、dockerfile简介
  • 2、入门案例
    • 2.1、创建目录 /opt/dockerfilejdk17
    • 2.2、上传 jdk-17_linux-x64_bin.tar.gz 到 /opt/dockerfilejdk17
    • 2.3、在/opt/dockerfilejdk17目录下创建dockerfile文件
    • 2.4、执行命令构建镜像 centos7-jdk17 : 不要忘了后面的那个 .
    • 2.5、查看镜像是否建立完成
    • 2.6、创建 交互型 容器 atguigu-centos
    • 2.7、 查看 交互型 容器 atguigu-centos /usr/local/java 目录

1、dockerfile简介

前面我们所使用的镜像都是别人构建好的,但是别人构建好的镜像不一定能满足我们的需求(**例如:**部署springboot项目需要java环境),使用dockerfile构建自定义镜像就可以解决这个问题。

dockerfile就是一个文本文件,在这个文本文件中可以使用docker所提供的一些指令来配置构建镜像的细节,后期可以使用这个dockerfile文件来构建自己的镜像。

dockerfile文件内容一般分为4部分:

  • 基础镜像信息(必选)

  • 维护者信息(可选)

  • 镜像操作指令(可选)

  • 容器启动时执行的指令(可选)

常用指令:

指令用法作用
FROMFROM image_name:tag指定一个构建镜像的基础源镜像,如果本地没有就会从公共库中拉取,没有指定镜像的标签会使用默认的latest标签,可以出现多次,如果需要在一个dockerfile中构建多个镜像。
MAINTAINERMAINTAINER user_name描述镜像的创建者,名称和邮箱
RUNRUN “command” “param1” “param2”用来执行一些命令,可以写多条
ENVENV key value设置容器的环境变量,可以写多条。
ADDADD source_dir/file将宿主机的文件复制到容器内,如果是压缩文件,则复制后自动解压
ENTRYPOINTENTRYPOINT “command” “param1” “param2”用来指定容器启动时所执行的命令

2、入门案例

需求:使用dockerfile来构建一个包含Jdk17的centos7镜像

分析:

1、基础的镜像的应该选择centos:7

2、把Jdk17添加到centos:7的基础镜像中

3、配置全局环境变量方便在镜像中使用java命令

实现步骤:

1、将Jdk17的压缩包上传到linux服务器中

2、在Jdk17所在的目录下创建一个dockerfile文件

3、使用docker build命令构建镜像

4、使用docker images查看镜像构建情况

5、使用自己所构建的镜像创建容器,测试Jdk17的安装情况

2.1、创建目录 /opt/dockerfilejdk17

[root@localhost ~]# mkdir -p /opt/dockerfilejdk17
[root@localhost ~]# cd /opt/dockerfilejdk17/
[root@localhost dockerfilejdk17]# 

2.2、上传 jdk-17_linux-x64_bin.tar.gz 到 /opt/dockerfilejdk17

jdk17:https://www.oracle.com/java/technologies/downloads/
在这里插入图片描述

2.3、在/opt/dockerfilejdk17目录下创建dockerfile文件

[root@localhost dockerfilejdk17]# vim dockerfile
FROM centos:7
MAINTAINER atguigu
RUN mkdir -p /usr/local/java
ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/
ENV JAVA_HOME=/usr/local/java/jdk-17.0.8
ENV PATH=$PATH:$JAVA_HOME/bin
[root@localhost dockerfilejdk17]# ll
总用量 178108
-rw-r--r--. 1 root root       182 925 21:29 dockerfile
-rw-r--r--. 1 root root 182376116 810 2023 jdk-17_linux-x64_bin.tar.gz

2.4、执行命令构建镜像 centos7-jdk17 : 不要忘了后面的那个 .

[root@localhost dockerfilejdk17]# docker build -t centos7-jdk17 .
[+] Building 29.9s (8/8) FINISHED                                                                                                                                                docker:default
 => [internal] load .dockerignore                                                                                                                                                          0.5s
 => => transferring context: 2B                                                                                                                                                            0.1s
 => [internal] load build definition from dockerfile                                                                                                                                       0.5s
 => => transferring dockerfile: 274B                                                                                                                                                       0.1s
 => [internal] load metadata for docker.io/library/centos:7                                                                                                                                6.1s
 => [1/3] FROM docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                                                          0.1s
 => => resolve docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                                                          0.0s
 => => sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4 1.20kB / 1.20kB                                                                                             0.0s
 => => sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B                                                                                                 0.0s
 => => sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB                                                                                             0.0s
 => [internal] load build context                                                                                                                                                          2.9s
 => => transferring context: 182.41MB                                                                                                                                                      2.9s
 => [2/3] RUN mkdir -p /usr/local/java                                                                                                                                                     1.4s
 => [3/3] ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/                                                                                                                                17.9s
 => exporting to image                                                                                                                                                                     2.2s
 => => exporting layers                                                                                                                                                                    2.2s
 => => writing image sha256:d4c53036ce375be152ed8efbd45ddf96e36108c5d3bc04fa9248dec7ebbaf374                                                                                               0.0s
 => => naming to docker.io/library/centos7-jdk17  

2.5、查看镜像是否建立完成

在这里插入图片描述

2.6、创建 交互型 容器 atguigu-centos

[root@localhost dockerfilejdk17]# docker run -it --name atguigu-centos centos7-jdk17 /bin/bash
[root@3d4f93f7b804 /]# java -version
java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)

2.7、 查看 交互型 容器 atguigu-centos /usr/local/java 目录

[root@localhost dockerfilejdk17]# docker run -it --name atguigu-centos centos7-jdk17 /bin/bash
[root@3d4f93f7b804 /]# java -version
java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)
[root@3d4f93f7b804 /]# cd /usr/local/java
[root@3d4f93f7b804 java]# ll
total 0
drwxr-xr-x. 9 root root 136 Sep 25 13:30 jdk-17.0.8
[root@3d4f93f7b804 java]# 

在这里插入图片描述


http://www.kler.cn/news/326599.html

相关文章:

  • Temporal Dynamic Quantization for Diffusion Models阅读
  • Spring中如何为静态变量注入值
  • 虚拟环境默认安装到C盘的修改办法
  • rust一些通用编程的概念
  • 在 Vue 中使用 ECharts:解决 Dialog 中 Tooltip 不显示的问题
  • Webshell分类
  • STM32DMA学习日记
  • 基于基于微信小程序的社区订餐系统
  • 软件测试|数据库常见面试题
  • Java常用三类定时器快速入手指南
  • 音视频整体解码流程和同步流程
  • 单节点集群数据写入测试
  • ESXI识别USB设备
  • 【min25筛】【CF2020F】Count Leaves
  • 【优选算法】(第五篇)
  • RabbitMQ 队列之战:Classic 和 Quorum 的性能洞察
  • pve虚拟机常见问题汇总
  • 【Linux 从基础到进阶】Azure 云服务在 Linux 上的应用
  • 【编程小白必看】MySQL 聚合函数操作秘籍一文全掌握
  • 算法安全自评估报告如何填写?(附模板)
  • 前端项目场景相关的面试题,包含验证码、图片存储、登录鉴权、动态路由、组件划分等项目场景实际的面试题
  • Leetcode面试经典150题-322.零钱兑换
  • django创建项目
  • uview表单校验不生效问题
  • MySql5.7.26安装和配置
  • C#_运算符重载详细解析
  • 随手记:ul-table表格合并方法
  • 爬虫库是什么?是ip吗
  • mysql 用户相关操作
  • 【深度学习】(8)--神经网络使用最优模型