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

app展示网站模板免费下载苏州网站开发公司排名

app展示网站模板免费下载,苏州网站开发公司排名,咸阳网站建设哪家好,百度网盟官网引言 在容器化技术日益普及的今天#xff0c;Dockerfile 成为了构建 Docker 镜像的核心工具。通过编写 Dockerfile#xff0c;开发者可以将应用程序及其依赖打包成一个可移植、可复用的镜像#xff0c;从而简化部署和运维工作。本文将详细介绍 Dockerfile 的基本概念、常用指…引言 在容器化技术日益普及的今天Dockerfile 成为了构建 Docker 镜像的核心工具。通过编写 Dockerfile开发者可以将应用程序及其依赖打包成一个可移植、可复用的镜像从而简化部署和运维工作。本文将详细介绍 Dockerfile 的基本概念、常用指令、制作镜像实例以及优化技巧帮助读者掌握如何构建简单高效的容器镜像。 Dockerfile 简介 Dockerfile 是一个包含了一系列命令的文本文件这些命令用于自动化地创建一个 Docker 镜像。通过编写 Dockerfile开发者可以将环境配置、应用程序代码、依赖关系等打包成一个镜像从而快速创建容器。用户可以将自己的应用打包成镜像让应用在容器中运行也可以对官方镜像进行扩展打包成适合生产环境的应用镜像。 Dockerfile 常用指令 2.1 FROM指定基础镜像 # 格式FROM image:[版本标签]# 示例FROM centosFROM ubuntu:20.04 FROM 指令用于指定构建新镜像时使用的基础镜像通常是 Dockerfile 的第一个有效指令。如果不指定版本标签默认使用 latest。 2.2 LABEL添加镜像的元数据 # 格式LABEL keyvalue keyvalue....# 示例LABEL version2.0 description业务系统第二个版本 LABEL 指令使用键值对方式为镜像添加元数据。一条 LABEL 可以指定多条元数据尽量不要写多个 LABEL。 2.3 RUN构建镜像时执行的命令 RUN 指令有两种执行方式shell 执行和 exec 执行。 # 格式RUN command# 示例RUN yum update -y RUN 指令创建的中间镜像会被缓存并在下次构建中使用。可以在构建时使用 --no-cache 取消缓存。 Exec 执行 # 格式RUN [executable, 参数1, 参数2]# 示例RUN [/bin/bash, -c, echo hello] 2.4 ENV在容器内部设置环境变量 # 格式ENV key value# 示例ENV MYPATH /usr/local ENV 指令用于在容器内部设置环境变量。 2.5 ADD将本地文件添加到镜像中 # 语法ADD src destADD [src, dest]# 示例ADD nginx.tar /opt ADD 指令类似于 scp但不需要用户名和密码权限验证。tar 类型文件会自动解压可以访问网络资源类似 wget。建议使用绝对路径尽量不要把 src 写成一个文件夹。 2.6 COPY将文件或目录复制到镜像中 # 语法COPY src destCOPY [src, dest]# 示例COPY myapp.jar /app/ COPY 指令的功能类似 ADD但不会自动解压文件也不能访问网络资源。COPY 的只能是本地文件其他用法一致。 2.7 VOLUME指定持久化目录 # 格式VOLUME [/path/to/dir]# 示例VOLUME [/data]VOLUME [/data/log, /data/config] VOLUME 指令用于指定持久化目录。卷可以在容器间共享和重用修改卷后会立即生效对卷的修改不会对镜像产生影响。 2.8 CMD容器启动时运行的命令不常用码 # 语法CMD [executable, param1, param2]CMD command param1 param2# 示例CMD echo $LANG CMD 指令用于指定容器启动时运行的命令。如果写了多条 CMD 指令只有最后一条生效。 2.9 ENTRYPOINT容器启动时运行的命令常用 # 语法ENTRYPOINT [executable, param1, param2]ENTRYPOINT command param1 param2# 示例ENTRYPOINT java -jar /data/config.jar ENTRYPOINT 指令也用于指定容器启动时运行的命令。与 CMD 不同ENTRYPOINT 不会被运行的 command 覆盖而 CMD 则会被覆盖。如果同时写了 ENTRYPOINT 和 CMDCMD 指定的内容将作为 ENTRYPOINT 的参数。 2.10 EXPOSE暴露容器运行时的监听端口给外部 # 格式EXPOSE port [port...]# 示例EXPOSE 8080EXPOSE 443/tcp 80/tcp EXPOSE 指令用于暴露容器运行时的监听端口给外部。但需要注意的是EXPOSE 并不会让容器的端口访问到主机。在运行时使用随机端口映射时会自动随机映射 EXPOSE 的端口。 2.11 WORKDIR工作目录 WORKDIR 指令用于设置工作目录后续指令将在该目录中执行。 2.12 其他指令 MAINTAINER指定作者。USER设置启动容器的用户。ONBUILD用于设置镜像触发器。HEALTHCHECK用于检查容器健康状况。 制作镜像实例重点 3.1 制作镜像语法 docker build -t 镜像名:标签名 Dockerfile路径 3.2 实例1构建 Nginx 镜像 1编写 Dockerfile # 使用官方 Nginx 镜像FROM nginx:1.25# 复制自定义配置文件COPY nginx.conf /etc/nginx/nginx.conf# 复制网站文件COPY html /usr/share/nginx/html# 暴露 Nginx 端口EXPOSE 80 2编写配置文件和网站文件 将 nginx.conf 和 html 目录放在 Dockerfile 同级目录下。 3构建镜像 由于 Docker Hub 镜像拉取可能不稳定可以使用公开的镜像加速服务如 docker.m.daocloud.io。 # 拉取 nginx 镜像需要跟 Dockerfile 中同版本docker pull docker.m.daocloud.io/nginx:1.25# 修改标签docker tag docker.m.daocloud.io/nginx:1.25 nginx:1.25# 构建镜像docker build -t mynginx . 4运行容器 docker run -d -p 80:80 --name mynginx mynginx 3.3 实例2构建 Java 应用镜像 1准备工作 确保 Java 应用已经打包成 JAR 文件并放在 Dockerfile 同级目录下。 2编写 Dockerfile # 使用官方 OpenJDK 镜像FROM openjdk:8# 指定作者MAINTAINER liyb liybgdhmail.com# 设置时区并创建工作目录RUN cp -a -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \mkdir /work# 复制 JAR 文件到工作目录COPY *.jar /work/app.jar# 暴露应用端口EXPOSE 9999# 设置容器启动时运行的命令ENTRYPOINT java -jar /work/app.jar 3构建镜像 # 构建镜像docker build -t myapp . 4运行容器 docker run -d -p 8080:9999 myapp Dockerfile 优化技巧 在编写高效的 Dockerfile 时可以遵循以下最佳实践以便优化镜像的构建和运行性能 4.1 使用轻量基础镜像 选择小巧的基础镜像如 Alpine以减少最终镜像的体积。 4.2 合并命令 每个指令如 RUN、COPY 等都会生成一个新的镜像层。使用  将多个 RUN 命令合并减少镜像层数从而提高构建速度和效率。 RUN wget http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz \tar -zxvf nginx-$NGINX_VERSION.tar.gz \cd nginx-$NGINX_VERSION \./configure --prefix/usr/local/nginx --with-http_ssl_module \make \make install 4.3 缓存优化 合理地安排指令顺序将不常变化的指令放在 Dockerfile 前面常变化的放在后面以利用缓存加快构建速度。 4.4 使用 .dockerignore 排除不必要的文件减小上下文大小提升构建速度。 4.5 多阶段构建 利用多阶段构建仅将最终运行所需的文件复制到最终镜像降低镜像大小。 4.6 优化入口 Dockerfile是一个文本文件其中包含了用于创建Docker镜像的一系列指令和参数。这些指令定义了镜像的构建步骤从基础镜像开始逐层添加软件、配置文件、依赖项等直到构建出最终的应用镜像。
http://www.hkea.cn/news/14270393/

相关文章:

  • 瑞达恒建筑网站昆明企业做网站
  • 沈阳公司网站制作手机app ui界面设计
  • 外冈网站建设深圳注册公司一定要u盾吗
  • 项目外包网站wordpress微商城插件
  • 阿里云服务器责任怎么做网站hao123手机浏览器
  • 浮雕模东莞网站建设小x导航正品
  • 做网站用哪个软件最好php重庆整合营销网站建设
  • 临沂专业网站建设设计公司嵌入式开发难学吗
  • 万维网 网站 主页 网页wordpress外贸企业模板
  • 游戏下载网站模板html对于网站
  • 律师论坛网站模板网站集约化后如何建设
  • wordpress改站点地址php做商城网站建设
  • 品牌宣传网站建设青岛网站建设多少钱
  • 网站程序开发制作十大品牌中国电子信息网
  • 网站建设算不算固定资产网站建设方面的
  • 网站开发可以多少钱一个月南宁市优化网站
  • 深圳网站设计公司排名电子商务网站系统规划
  • 仿新浪微博网站代码crm公司
  • html5 门户网站模版成都app开发外包
  • 做网站推广的工作内容深圳设计网站有哪些
  • 网站宣传推广方案win8风格企业网站
  • 亚马逊卖家做自己网站如何用ps做照片模板下载网站
  • 昆明网站建设培训办公电脑租赁平台
  • 怎么做透明的网站图片哪个设计网站做兼职好
  • 南京网站制作链接百度搜索引擎怎么做
  • 湖南长沙益阳网站建设微信开发小程序教程
  • 南昌商城网站建设网站的图片怎么制作
  • 内江市建设教育培训官方网站wordpress定时备份
  • 付费阅读下载网站开发wordpress安装主题之后首页不变
  • 利用微博网站做淘客装修公司免费装修