首页 > 其他分享 >Dockerfile相关

Dockerfile相关

时间:2024-03-10 16:13:03浏览次数:26  
标签:镜像 CMD ENV HOME 相关 docker Dockerfile

Dockerfile相关

谁什么

概念

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本

步骤

编写Dockerfile文件 ----> docker build命令构建镜像 ----> docker run 运行新镜像构建容器实例

Dockerfile内容的基础知识或约定

1.每条保留字指令都是大写字母并且后面要跟随至少一个参数

2.指令按照从上到下,顺序执行

3.#表示注释

4.每条指令都会创建一个新的镜像层并对镜像进行提交

常用保留字指令

FROM 指定基础镜像,就是说你要构建的镜像要以哪个镜像为基础

MAINTAINER 镜像维护者的姓名和邮箱

RUN docker build 时执行的命令

EXPOSE 当前容器对外暴露的端口

WORKDIR 指定在创建容器后,终端默认登录进去的一个工作目录,一个落脚点

USER 指定镜像以哪个用户执行,默认root

ENV 设置环境变量

ADD 将宿主机的文件添加到镜像中,要求要添加的文件在宿主机的目录要跟Dockerfile是一个目录

COPY 类似ADD

VOLUME 指定容器数据卷

CMD 执行命令,在docker run 时执行,只有最后一个CMD命令生效

ENTRYPOINT 类似CMD

案例

比如要使用Dockerfile构建一个具备vim+ifconfig+jdk8的CentOS7镜像

1.将jdk-8u171-linux-x64.tar.gz放在宿主机的 /home/mytest

2.将Dockerfile文件放到宿主机的 /home/mytest (哪个目录都行,只要保证和jdk-8u171-linux-x64.tar.gz同目录)

3.编写Dockerfile内容

FROM centos
MAINTAINER zzyy<[email protected]>
 
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-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
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

4.在宿主机的 /home/mytest (哪个目录都行,只要是Dockerfile文件同级就行)执行以下命令

#     centosjava8是自己起的新镜像名字,1.5是自己定的版本号TAG, 后面那个点.必须有
docker build -t centosjava8:1.5 .

5.运行

#docker run -it 新镜像名:TAG
docker run -it centosjava8:1.5

标签:镜像,CMD,ENV,HOME,相关,docker,Dockerfile
From: https://www.cnblogs.com/lfh-blog/p/18064284

相关文章

  • 近年来文本检测相关工作梳理
    引言场景文本检测任务,一直以来是OCR整个任务中最为重要的一环。虽然有一些相关工作是端对端OCR工作的,但是从工业界来看,相关落地应用较为困难。因此,两阶段的OCR方案一直是优先考虑的。在两阶段中(文本检测+文本识别),文本检测是极为重要的一环。自从DBNet提出后,工业界似乎找到了法宝......
  • Hanoi问题及其相关快速算法
    Hanoi问题抽象hanoi(n,x,y,z)step1:hanoi(n-1,x,z,y)step2:move(x,z)step3:hanoi(n-1,y,x,z)递归部分实现代码voidhanoi(intn,charx,chary,charz){​ if(n==1){ // 递归出口​ move(x,z);​ }​ else{​ hanoi(n-1,x,z,y);​ move(x,z);​ hanoi(n......
  • 【测试】Android Studio 相关下载及参数
    AndroidStudio仅限命令行工具ZipfilesWindows:commandlinetools-win-11076708_latest.zip(153.6MB)SHA-256Checksums4d6931209eebb1bfb7c7e8b240a6a3cb3ab24479ea294f3539429574b1eec862commandlinetools-win-11076708_latest.zipAndroidEmulatorAndroid模拟器......
  • Android 二维码相关(二)
    Android二维码相关(二)本篇文章继续讲述下如何使用zxing解析二维码图片,获取内容.1:创建RGBLuminanceSource对象.首先获取二维码图片的bitmap对象.Bitmapbitmap=BitmapFactory.decodeResource(getResources(),R.mipmap.test);根据getPixels()获取位图指定区域的像素颜......
  • FFU、WIM、ESD、VHD和VHDX都是与Windows操作系统部署、备份和虚拟化相关的文件格式。
    FFU(FullFlashUpdate)文件格式是微软开发的,用于在Windows设备上进行固件更新和完整系统部署的一种映像文件格式。FFU文件包含了设备的完整磁盘映像,包括所有分区、文件系统和数据。这种格式允许精确复制存储设备的内容,提供了一种高效且可靠的方式来恢复、更新或部署设备。下面是对F......
  • MySQL查询优化方案汇总(索引相关)
    索引相关类型隐式转换大坑**字段filed1是varchar类型,且加了索引,如果wherefiled1=123;type可能是all,因为123是数字类型,mysql内部会用函数做隐式转换,用了函数,索引就失效了。**大数据深度分页,用主键selectfield1,field2fromtablelimit100000,10;selectfield1,fiel......
  • Android 二维码相关(一)
    Android二维码相关(一)本篇文章主要记录下android下使用zxing来创建二维码.1:导入依赖api"com.google.zxing:core:3.5.1"2:创建二维码创建QRCodeWriter对象QRCodeWriterqrCodeWriter=newQRCodeWriter(); 将文本内容转换成BitMatrixBitMatrixencode=qrCod......
  • 前端水印相关解析
    一、问题背景为了防止信息泄露或知识产权被侵犯,在web的世界里,对于页面和图片等增加水印处理是十分有必要的,水印的添加根据环境可以分为两大类,前端浏览器环境添加和后端服务环境添加,根据可见性,网页水印可以分为可见水印和不可见水印(盲水印/隐水印),简单对比一下这两种方式的特点:前......
  • 对于core-js相关的报错 core-js/modules/es.array.push.js in ./node_modules/.store
    Thesedependencieswerenotfound:*core-js/modules/es.array.push.jsin./node_modules/.store/@[email protected]/node_modules/@babel/runtime/helpers/construct.js,./node_modules/.store/@[email protected]/node_modules/@babel/runtime/helpers/esm/obj......
  • 华企盾DSC的屏幕浮水印可以设置哪些相关法律话术?
    华企盾DSC防泄密系统的屏幕浮水印和进程浮水印能够设置相关法律话术作为水印内容,以增加警示作用。具体的法律话术设置并未给出直接的示例,但理论上可以设定涉及数据保密、著作权声明、适当的法律责任警告等任何合法、合规的法律性内容。例如: "本计算机受到公司数据保密政策......