03(总)-docker篇 Dockerfile镜像制作(jdk,jar)与jar包制作成docker容器方式


1.前言简介

在看本文之前 需要有基础的docker知识 了解 镜像与容器 的区别
同时也需要了解 宿主机与容器之间的关系
例如在端口与目录挂载等位置使用

1.1 专栏传送门

===> docker专栏传送门 <===

1.1.2 上文传送门

2. docker镜像制作一: jdk

2.1 制作jdk镜像

2.1.1 准备工作

下载centos7.9操作系统镜像(就是一个文件系统)
创建文件夹 (任意)
进入文件夹 cd
编辑Dockerfile文件

docker pull centos:7.9.2009
mkdir -p /usr/local/src/docker/jdk8
cd /usr/local/src/docker/jdk8
vim Dockerfile

2.1.2 jdk镜像的Dockerfile

注意Dockerfile 文件名称

#!/bin/bash
FROM centos:7.9.2009
MAINTAINER pingzhuyan

# ADD 拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压 (注意:拷贝的文件要跟Dockerfile文件同级)
# 将jdk1.8添加到/usr/local/pro/jdk目录下并解压
ADD jdk-8u65-linux-x64.tar.gz  /usr/local/jdk

ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_65
ENV JRE_HOME /usr/local/jdk/jdk1.8.0_65/jre
ENV PATH $JAVA_HOME/bin:$PATH

2.1.3 基于Dockerfile构建镜像

docker build -t 镜像名称 . #注意这个点

docker build -t jdk8-image . 

2.1.4 docker使用镜像运行容器

基于jdk8-image运行容器

在这里插入图片描述

指令如下

docker run -di --name=jdk1.8 jdk8-image

2.1.5 进入jdk1.8容器内测试

进入后 看到Java版本即为成功

在这里插入图片描述

指令如下

docker exec -it jdk1.8 bash 
java -verion   #执行成功

3. docker镜像制作二: java镜像(jar包)

3.0 准备工作

创建文件夹存放jar包(使用jenkins等打版工具上传)

在这里插入图片描述

指令如下 如上图 (涂掉的地方是 3.2 方法二使用先忽略)

mkdir -p /usr/local/src/docker/jar/test

3.1 制作方法一: 基于jdk8-image镜像一键启动jar容器

3.1.1 创建并启动jar容器

设置本目录 与 容器内自己挑选的位置挂载
示例: -v /usr/local/src/docker/jar/test:/usr/local/jar
设置个开机自启 --restart=always
基于jdk8-image镜像启动容器

docker run -d -p 9090:9090 --restart=always \
-v /usr/local/src/docker/jar/test:/usr/local/jar \
--name pzy_test.jar jdk8-image  java -jar -Dserver.port=9090 /usr/local/jar/pzy_test.jar

3.2 制作方法二: Dockerfile制作java的镜像并创建运行容器

3.2.0 准备工作

创建Dockerfile

cd /usr/local/src/docker/jar/test
vim Dockerfile

如图所示:

在这里插入图片描述

3.2.1 Dockerfile制作java的镜像

Dockerfile逻辑:

  1. 基于本地jdk8-image镜像(Java环境)
  2. 设置工作目录 /usr/local/src/docker/jar/test
  3. 将当前目录下的renren.jar复制到容器的任意目录中 /usr/local/src/docker/jar/test/pzy_test.jar
  4. 暴露应用的端口 默认8080
  5. 一个日志 查看Java的path是否正常
  6. 启动执行命令cmd
# 使用本地镜像 
FROM jdk8-image
  
# 设置工作目录为 (自定义)  
WORKDIR /usr/local/src/docker/jar/test
  
# 将当前目录下的renren.jar复制到容器的任意目录中  
COPY pzy_test.jar /usr/local/src/docker/jar/test/pzy_test.jar  
  
# 暴露应用的端口 默认8080
EXPOSE 9090  
  
RUN which java || echo "Java not found in PATH"
RUN echo $PATH

# 容器启动时执行的命令  
CMD ["java", "-jar", "/usr/local/src/docker/jar/test/pzy_test.jar"]

构建docker镜像制作pzy_test-image

docker build -t pzy_test-image . 

3.2.2 docker创建运行jar容器

目录挂载 设置开机自启 使用pzy_test-image 镜像 端口9091
docker container logs -f pzy_test.jar #查询日志

docker run --name pzy_test.jar -p 9091:9090 \
-v /usr/local/src/docker/jar/test:/usr/local/src/docker/jar/test \
-d --restart=always pzy_test-image

4. 文章的总结与预告

4.1 本文总结

4.1.1 问题总结

有一些注意事项, 上面如果遇到问题, 先看看这里有没有对应的错误操作

  1. 镜像名字与容器名字不能相同 不然会出现各种问题
  2. 查看自己的jdk包解压后是什么名称 在制作jdk镜像时需要填写正确
  3. 不要认为在容器内修改文件后镜像会有变化, 镜像时静态的不会有变化(不对请指出哈)
  4. 在容器的所有操作,记住容器与宿主机概念, 运行都是在容器目录下操作, 上传是宿主机挂载目录

4.2 下文预告

批量生成docker镜像并启动容器脚本, 结合jenkins使用
效果: git自动拉取, maven打版, 上传到指定文件夹, 根据脚本生成docker新镜像(保留之前),完成启动



@author: pingzhuyan
@description: ok
@year: 2024

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pingzhuyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值