简单的一批的DockerFile构建

简介: 从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,* Dockerfile是软件的原材料* Docker镜像是软件的交付品* Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

1 Dockerfile,需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;

2 Docker镜像,在用Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行 Docker镜像时会真正开始提供服务;

3 Docker容器,容器是直接提供服务的。

DockerFile常用保留字指令
图片.png
图片.png
图片.png
演示自定义构建java8版本centos

首先拉取centos,注意这里使用centos7版本进行测试,centos8版本与7版本差异较大
图片.png
创建文件夹myfile并在此文件夹内上传jdk8文件压缩包
图片.png
编写写Dockerfile
图片.png
图片.png
FROM centos:7
MAINTAINER wutian

ENV MYPATH /usr/local
WORKDIR $MYPATH

安装vim编辑器

RUN yum -y install vim

安装ifconfig命令查看网络IP

RUN yum -y install net-tools

安装java8及lib库

RUN yum -y install glibc.i686
RUN mkdir /usr/local/java

ADD 是相对路径jar,把jdk-8u181-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置

ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/

配置java环境变量

ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 80

CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
开始构建
图片.png
图片.png
测试:
图片.png
测试vim和ifconfig以及java8命令
图片.png
图片.png
成功

相关文章
|
消息中间件 Docker 容器
使用 Docker 安装 activemq
本文是博主学习docker的记录,希望对大家有所帮助。
2190 0
使用 Docker 安装 activemq
|
2月前
|
存储 NoSQL 前端开发
告别踩坑!若依图片验证码实现与改造指南
若依(RuoYi)框架中图片验证码的完整实现逻辑、核心代码和定制化方法,我会从实现原理、核心代码拆解、关键配置、定制化改造四个维度讲解,覆盖验证码生成、存储、校验全流程,让你既能理解原理,也能按需修改验证码样式 / 规则。
207 10
|
7月前
|
机器学习/深度学习 数据采集 人工智能
Tongyi DeepResearch的技术报告探秘
引言阿里通义实验室悄悄(其实动静不小)发布了一个叫 Tongyi DeepResearch 的 Agent 项目。它没有开发布会,没请明星站台,甚至没发通稿——但它在 GitHub 上架当天,就登顶了“每日趋势榜”。这速度,比人类发现…
984 2
Tongyi DeepResearch的技术报告探秘
|
6月前
|
Go API 数据库
腾讯WeKnora 架构学习指南
《WeKnora架构学习指南》系统解析了这一腾讯开源的智能知识库项目,涵盖核心架构、技术栈、代码结构与学习路径。通过生活化类比和深度流程图解,帮助开发者从零掌握Go后端、Vue前端、RAG原理及微服务协同,提供四阶段进阶路线与实战建议,助力快速上手并参与贡献。
1253 3
|
11月前
|
Linux 虚拟化
AlmaLinux 10 - RHEL 二进制兼容免费发行版
AlmaLinux 10 - RHEL 二进制兼容免费发行版
420 8
AlmaLinux 10 - RHEL 二进制兼容免费发行版
|
Linux 数据库 开发者
Centos7安装docker并部署halo建站
Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到可移植的容器中,然后在任何支持 Docker 的平台上运行。Docker 的核心概念包括镜像(Image)、容器(Container)和仓库(Repository)。镜像是创建容器的基础,容器是镜像的运行实例,而仓库是存储和分发镜像的中心仓库。 Docker 的优势在于快速、一致地交付应用,实现响应式部署和扩展,以及更高效地利用硬件资源。它常用于简化配置、代码流水线管理、提
763 0
|
jenkins 测试技术 持续交付
Jenkins 在多分支项目中的应用
【8月更文第31天】在现代软件开发实践中,分支管理是一项至关重要的策略,它允许开发团队在不同的功能开发、修复bug或进行实验时不会干扰主干代码。随着项目的复杂度增加,维护多个分支并确保它们的质量变得越来越具有挑战性。Jenkins 作为一款流行的持续集成(CI)和持续部署(CD)工具,提供了强大的功能来支持多分支项目的自动化测试和部署。本文将探讨 Jenkins 如何帮助管理多分支项目,并提供具体的代码示例。
487 0
|
弹性计算 关系型数据库 MySQL
离线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
258 1
|
Linux
linux查看服务器带宽
linux查看服务器带宽
306 0
|
存储 网络协议 Java
本地MinIO存储服务如何创建Buckets并实现公网访问上传文件
本地MinIO存储服务如何创建Buckets并实现公网访问上传文件
2610 0