首页 > 其他分享 >DockerFile

DockerFile

时间:2024-05-10 18:22:27浏览次数:19  
标签:容器 dockerfile nginx 指令 镜像 docker DockerFile


DockerFile 解析 :
  是什么 :
  dockerfile 是用来构建docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。  

  独立于docker build 创建成docker镜像
官网 : http://docs.docker.com/engine/reference/builder/

构建三步骤 :
  1, 编写dockerfile文件
  2, docker build 命令构建镜像
  3, docker run 依据镜像运行容器实例

dockerfile 构建原理 :
  1,每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  2,指令按照从上到下,顺序执行
  3,#表示注释
  4,每条指令都会创建一个新的镜像层并对镜像进行提交
docker 执行dockerfile的大致流程
  1,docker从基础镜像运行一个容器
  2,执行一条指令并对容器作出修改
  3,执行类似docker commitd的操作提交一个新的镜像层
  4,docker 再基础刚提交的镜像运行一个新容器
  5,执行dockerfile中的下一条指令直到所有指令都执行完成

dockerfile常用保留字 :
  参考Tomcat8 的dockerfile 入门
  http://github.com/docker-library/tomcat

DockerFile保留字:
  FROM :基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from
  MAINTAINER :镜像维护者的姓名和邮箱地址
  RUN :容器构建时需要运行的命令 两种格式 shell格式 exec格式
  Run 是在 docker build 时运行
  EXPOSE :当前容器对外暴露的端口
  WORKDIR :指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
  USER : 是定该镜像以什么样的用户去执行,如果都不指定,默认时root
  EVN : 用来在构建镜像过程中设置环境变量
  ADD :将宿主机目录下得文件拷贝进镜像且会自动处理url和解压tar压缩包
  COPY : 类似add,拷贝文件和目录到镜像中。
  将从构造上下文目录中<原路径>的文件/目录复制到新的一层镜像内的<目的路径>位置


  eg:COPY src dest
  COPY ["src","dest"] <src原路径>:源文件或者源目录
  <dest目标路径>: 容器内的制定滤镜,该路径不用事先建好,如果没有会自动创建
  VOLUME :
  CMD : 指定容器启动后要做的指令(事情)
  注意: DockerFile 中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
  它和前面RUN命令的区别 CMD 是在docker run 时运行 RUN 是在docker build 时运行
  ENTRYPOINT : 也是用来指定一个容器启动时要运行的命令
  类似于CMD 指令,但是ENTRYPOINT不会被docker run后面的命令覆盖,而且这些命令会被当作参数送给ENTRYPOINT指令指定的程序
  eg : 变参 nginx 启动命令 nginx -c

FROM nginx
ENTRYPOINT ["nginx","-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参


是否传参 按照dockefile编写执行 传参运行
Docker 命令 docker run nginx:test docker run nginx:test -c /etc/nginx/nginx.conf
衍生出的实际命令 nginx -c /etc/nginx/nginx.conf nginx -c /etc/nginx/nginx.conf


案例:contos案例
https://www.oracle.com/java/technologies/downloads/#java8下载安装 (登录oracle)
https://mirrors.yangxingzhen.com/jdk/ 分享路径个人博客
自定义镜像 centos java8
要求:Centos 镜像具备vim+jdk8+ifconfig
编写: 准备编写DockerFile文件 大写字母D

构建 :docker build -t centosjava8:1.5 .
注意 : .

docker run -it 镜像ID /bin/bash
pwd
登录查看 vim a.text
cat a.text
java -version


虚悬镜像:是什么 :仓库名、标签都是<none>的镜像,俗称dangling image

  查看虚悬镜像 docker images ls -f dangling=true 全部删除 docker image prune
  虚悬镜像已经失去存在价值,可以删除

  ubuntu 其他工具
RUN apt-get updata
RUN apt-get install net-tools
# RUN apt-get install -y iprout2
# RUN apt-get install install -y inetutils-ping

标签:容器,dockerfile,nginx,指令,镜像,docker,DockerFile
From: https://www.cnblogs.com/wzmd/p/18185065

相关文章

  • docker的一些命令 以及dockerFile语法
    文件夹重新命名mvnode-v14.18.1-linux-x64node-v14.18.1dokcer命令 将linux的文件复制到docker容器里面       dockercp/usr/local/node-v14.18.1/8ec26052dfad:/usr/local/node-v14.18.1将docker容器里面的文件复制到linux       dockerc......
  • Docker04-dockerfile
    dockerfile概述dockerfile涉及执行代码、执行文件、环境变量、依赖包、运行时环境、动态链接库、操作系统发行版、服务进程、内核进程从应用软件的角度来看,三者分别代表软件的三个不同阶段dockerfile是软件的原材料docker镜像是软件的交付品docker容器是软件的运行态Dockerf......
  • 021Dockerfile相关
    一、dockerhistory镜像层文件确认方法#(1)问:如何查询dockerfile里的ADDfile:a0a9df396dd400a83cc437cba4830851b18457de79db5955704378c6d206b9a1in/usr/local/java/实际文件file后的id?ADDfile:a0a9df396dd400a83cc437cba4830851b18457de79db5955704378c6d206b9a1i......
  • Dockerfile.oracle-注释学习
    innovation/Dockerfile.oracle##NOTE:THISDOCKERFILEISGENERATEDVIA"apply-templates.sh"##PLEASEDONOTEDITITDIRECTLY.##使用oraclelinux:8-slim基础镜像FROMoraclelinux:8-slim#set-eux也就是以调试的方式执行shell,只识别定义过的变量,同时脚......
  • Dockerfile
     FROM--platform=$BUILDPLATFORMalpineasprotocARGBUILDPLATFORM=linux/amd64TARGETOS=linuxTARGETARCH=amd64#downloadtheprotocbinaryfromgithub#Weunzipthefileinto/usr/local.Noticethatweareextractingboththeprotoc#binary(/bin/pr......
  • DockerFile
    FROMcentos:7MAINTAINERzhangsan<[email protected]>ENVMYPATH/usr/localWORKDIR$MYPATHRUNyum-yinstallvimRUNyum-yinstallnet-toolsEXPOSE80CMDecho$MYPATHCMDecho"----end----"CMD/bin/bashDockerFile文件教学连接单阶段构建例子FROM......
  • 【前端开发】前端编写Dockerfile构建镜像流程
    1、demo#Dockerfile#FROMnode:18//基础镜像,node服务就用node基础镜像#切换到root用户USERroot#创建工作区目录WORKDIR/appENVBASEPATH/app#复制文件到工作区COPYpackage.jsonpackage-lock.jsonecosystem.config.js.npmrc$BASEPATH/COPY/src$BASE......
  • 使用 Dockerfile 构建和定制 Docker 镜像
    前言Dockerfile是用于构建Docker镜像的文本文件,其中包含了一系列指令和参数,用于定义镜像的内容、环境和运行方式。本文将介绍如何编写和使用Dockerfile,以及常用的指令和技巧,帮助大家快速掌握Docker镜像的构建和定制过程。什么是DockerfileDockerfile是一个文本文件,其内......
  • 使用 Dockerfile 定制镜像【转】
    前言大家好,本文是对Docker自定义镜像的详细讲解,讲解了如何进行构建自己的Docker镜像以及Dockerfile的操作指令。希望对大家有所帮助~一、使用Dockerfile定制镜像1.1、Dockerfile定制镜像镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改......
  • Dockerfile - Install protoc
     FROM--platform=$BUILDPLATFORMalpineasprotocARGBUILDPLATFORM=linux/amd64TARGETOS=linuxTARGETARCH=amd64#downloadtheprotocbinaryfromgithub#Weunzipthefileinto/usr/local.Noticethatweareextractingboththeprotoc#binary(/bin/pr......