简单的一批的DockerFile构建(内附超详细docker学习笔记)

news/2024/6/3 19:34:37 标签: docker, 容器, dockerfile, 容器构建

目录

介绍

DockerFile常用保留字指令

 演示自定义构建java8版本centos

docker%E4%B8%93%E7%94%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%20%E8%B6%85%E5%85%A8-toc" style="margin-left:0px;"> docker专用学习笔记 超全

介绍

 

总结:

从应用软件的角度来看,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常用保留字指令

 

 

 演示自定义构建java8版本centos

首先拉取centos,注意这里使用centos7版本进行测试,centos8版本与7版本差异较大

 创建文件夹myfile并在此文件夹内上传jdk8文件压缩包

 编写写Dockerfile

 

 

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

 开始构建

 

 

 docker build -t centosjava8:1.1 .

测试:

 测试vim和ifconfig以及java8命令

 

成功 

docker%E4%B8%93%E7%94%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%20%E8%B6%85%E5%85%A8"> docker专用学习笔记 超全

docker超详细学习笔记

提取码:n830


http://www.niftyadmin.cn/n/433493.html

相关文章

【GDAL】矢量栅格化函数-gdal_rasterize

目录 函数描述:此程序将矢量几何图形(点、线和多边形)转换到栅格图像中。 参数: 2.1 新版功能. 2.3 新版功能. 2.3 新版功能. 举例说明: gdal_rasterize [-b band]* [-i] [-at]{[-burn value]* | [-a attribute_…

操作系统原理与并发控制:提高系统效率和资源管理

导言: 操作系统是计算机系统中最基础和核心的软件之一,它负责管理计算机的硬件和软件资源,并提供一个稳定、高效的运行环境。并发控制是操作系统中一个重要的概念,涉及到多个任务或进程同时执行和共享资源的管理。本文将介绍操作系…

unity 连接mongoDB数据库

using MongoDB.Bson; private IMongoDatabase _database; private MongoClient _client; public void GetMongoDBData() { //获取本地端口号为9999的URL路径 string URL "mongodb://localhost:9999"; //创建并实例化客户端 …

组合模式(十二)

请相信自己,请再次相信自己,请一定要相信自己 上一章简单介绍了装饰者模式(十一), 如果没有看过, 请观看上一章 一. 组合模式 引用 菜鸟教程里面的 组合 模式介绍: https://www.runoob.com/design-pattern/composite-pattern.html 组合模式&#xff0…

MIT6.024学习笔记(三)——图论(2)

科学是使人变得勇敢的最好途径。——布鲁诺 文章目录 通信网络问题二叉树型直径路由器规模路由器数量拥挤程度 二维数组型直径路由器规模路由器数量拥挤程度 蝴蝶型直径路由器规模路由器数量拥挤程度 benes型直径路由器规模路由器数量拥挤 通信网络问题 在通信网络中&#xff…

软件测试工程师如何推进项目进度?

在软件研发中,有一种思想叫TDD,即测试驱动开发,TDD是敏捷方法中的一项核心实践,其原理是在开发功能代码之前,先编写单元测试用例代码,对要编写的函数或类明确测试方法后,再进行设计与编码。 本…

C语言-变量

1 内存的分区 1、内存:物理内存、虚拟内存 物理内存:实实在在存在的存储设备 虚拟内存:操作系统虚拟出来的内存。 操作系统会在物理内存和虚拟内存之间做映射。 在32位系统下,每个进程的寻址范围是4G,0x00 00 00 00 ~0xff ff …

912. 升序排序数组

快速排序算法 快速排序是一种常用的排序算法,通过选择一个基准值,将数组分为左右两部分,然后对左右两部分分别进行递归排序,最终得到一个有序数组。 时间复杂度: 最好情况下,每次选择的基准值都能均匀地…