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

Docker-10.Docker基础-自定义镜像

一.Dockerfile

前面我们说了使用dockerfile来构建自定义镜像非常简单,只需要几行命令,但是我们要如何使用dokcerfile来帮我们构建呢?换句话说,如何使用docker来执行dockerfile文件呢?这里肯定要使用一些命令。

说明:.与版本号之间有一个空格。此外构建镜像的命令为docker build -t 镜像名:版本号 dockerfile路径。一般情况下dockerfile所在目录和命令执行所在目录是一样的,我们就直接使用.就行了。如果不一样,要指定dockerfile所在目录。

在资料中准备了demo文件,里面有要构建的镜像jar包和Dockerfile文件,我们直接将其拖入到服务器中即可。

Dockerfile文件中的内容:

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

/app.jar是要构建镜像的jar包在镜像中的存储位置。可以任意书写会自动创建。ENV/RUN用来设置时区,否则不是东八区,日志和运行时间都会有问题。

二.运行dockerfile

首先我们将demo文件传入到root目录下,然后dockerfile文件中的基础镜像并不存在,我们可以下载,也可以直接导入资料。

对于上传好的tar包,我们如何变为自己的镜像呢?回顾之间的命令:

我们使用docker load进行tar包的镜像加载构建:docker load -i jdk.tar。

然后我们进入demo目录运行dockerfile文件中的指令,因为我们想要直接写一个.,因此一定要进入demo目录,即dockerfile所在的目录,才能使用"."。保证dockerfile要构建镜像的jar包和dockerfile在同一个目录下。

接着就可以使用“docker build -t 镜像名:版本号 dockerfile路径”来构建自定义镜像。

执行完dockerfile的三步,就完成了自定义镜像的构建。接着查看镜像。

然后使用docker run运行一个容器。docker run -d --name dd -p 8080:8080(这个要看具体的,这里是8080) docker-demo:latest。

容器运行起来并通过dps查看容器状态。

通过docker logs -f dd查看容器日志:

访问8080端口及路径,成功

总结:

http://www.lryc.cn/news/618125.html

相关文章:

  • 医疗矫正流(MedRF)框架在数智化系统中的深度应用
  • 无人机在环保监测中的应用:低空经济发展的智能监测与高效治理
  • 云平台监控-云原生环境Prometheus企业级监控实战
  • .NET MAUI框架编译Android应用流程
  • 计算机视觉(7)-纯视觉方案实现端到端轨迹规划(思路梳理)
  • 《飞算Java AI:从安装到需求转实战项目详细教学》
  • 解决anaconda打包幻境是报错:ImportError: cannot import name ‘tarfile‘ from ‘backports‘
  • Java多线程基础总结
  • 云原生环境Prometheus企业级监控实战
  • 【编程实践】关于Vscode无法连接Anaconda解译器的问题
  • 手机蓝牙无感开锁在智能柜锁与智能箱包中的整体解决方案
  • MySql——B树和B+树区别(innoDB引擎为什么把B+树作为默认的数据结构)
  • 2025-8-11-C++ 学习 暴力枚举(2)
  • STM32学习笔记7-TIM输入捕获模式
  • 【OpenGL】LearnOpenGL学习笔记06 - 坐标系统、MVP变换、绘制立方体
  • 复杂提示词配置文件
  • Tricentis Tosca:现代软件测试的自动化利器
  • 内存作假常见方案可行性分析
  • MySQL,Redis重点面试题
  • 最短路问题从入门到负权最短路
  • 基于51单片机指纹识别管理门禁密码锁系统设计
  • 集成电路学习:什么是URDF Parser统一机器人描述格式解析器
  • 19.Linux DHCP服务
  • 数据结构:串、数组与广义表
  • 【Leetcode】随笔
  • 每日算法刷题Day61:8.11:leetcode 堆11道题,用时2h30min
  • 普通大学本科生如何入门强化学习?
  • 【ros-humble】4.C++写法巡场海龟(服务通讯)
  • Linux运维学习第十四周
  • 【3D Gen 入坑(1)】Hunyuan3D-Paint 2.1 安装 `custom_rasterizer` 报错完整排查