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

网站域名备案服务号南宁网站建公司

网站域名备案服务号,南宁网站建公司,企业电子商务的网站的建设方式,安康 住房城乡建设部网站Docker进阶#xff1a;深入了解 Dockerfile 一、Dockerfile 概述二、Dockerfile 优点三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命令15、… Docker进阶深入了解 Dockerfile 一、Dockerfile 概述二、Dockerfile 优点三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命令15、HEALTHCHECK 五、Dockerfile构建镜像 The Begin点点关注收藏不迷路 一、Dockerfile 概述 Dockerfile 是用来定义 Docker 镜像里的内容和构建步骤的文本文件。通过编写 Dockerfile可以定制化镜像的构建过程包括基础镜像选择、软件安装、环境变量设置等操作。通过编写 Dockerfile用户可以自定义和构建自己的 Docker 镜像实现应用程序的快速部署和跨环境运行。 二、Dockerfile 优点 1、容器化趋势: 容器化技术正在成为软件开发和部署的主流趋势。Docker 是当前最流行的容器化平台之一而 Dockerfile 是定义 Docker 镜像的关键工具掌握 Dockerfile 可以帮助开发人员更好地理解和应用容器化技术。 2、快速部署与交付: 使用 Dockerfile 可以定义应用程序的环境和依赖将其打包成镜像使得应用程序能够在不同环境中快速部署和交付。这种标准化的部署方式大大简化了部署流程提高了开发团队的工作效率。 3、环境一致性: 通过 Dockerfile 构建的镜像可以确保应用程序在不同环境中的一致性运行避免了因环境差异导致的问题从而提高了应用程序的可移植性和稳定性。 4、资源隔离与安全性: Docker 容器提供了资源隔离和安全性使用 Dockerfile 可以定义容器的运行环境和权限确保应用程序在容器中的安全运行。 5、持续集成与持续部署: Dockerfile 可以作为持续集成和持续部署流程的一部分帮助构建自动化的部署流程。 三、Dockerfile 编写规则 Dockerfile 是一个文本文件其中包含用于构建 Docker 镜像的指令。每个指令都会创建一层并且可以基于之前的层构建。 1、文件名以 Dockerfile命名。 2、Dockerfile 中引用的所有文件都应该与 Dockerfile 文件处于相同的目录层级在 Dockerfile 中引用文件时默认路径是相对于 Dockerfile 所在的目录。 3、Dockerfile 中非注释行的第一行必须是 FROM 指令用于指定基础镜像。 4、注释以井号(#)开头用于注释 Dockerfile 中的内容。 5、通常为了提高可读性和一致性建议按照惯例以大写形式书写 Dockerfile 指令例如 # Nginx基础镜像并指定了使用最新版本 FROM nginx:latest# 将本地的 nginx.conf 文件复制到容器中的 /etc/nginx 目录下 COPY nginx.conf /etc/nginx/nginx.conf# 暴露 Nginx 的默认 HTTP 端口 EXPOSE 80INSTRUCTION指令是关键字告诉 Docker 如何处理后续的命令。 arguments指令的参数具体取决于指令的类型。6、编写 Dockerfile 时可以在同一目录下创建一个名为 .dockerignore 的文件并根据需要列出需要排除的文件和目录。这样可以确保在构建 Docker 镜像时只包含必要的文件避免不必要的文件被添加到镜像中减小镜像大小并提高构建效率。 以下是一些示例 .dockerignore 文件的用法# 忽略所有 .git 目录 .git# 忽略所有 .DS_Store 文件 .DS_Store# 忽略 log 目录及其下所有内容 log/# 忽略 Dockerfile 中引用的一些文件 config.json secrets/四、Dockerfile 中常用的指令 指令含义FROM 镜像指定基础镜像用于构建新镜像的起点。MAINTAINER 名字说明镜像的维护人信。已在Docker中弃用建议使用LABEL代替RUN 命令在镜像中执行命令用于安装软件包、设置环境等操作。CMD [ 要运行的程序 参数1, 参数2]指定容器启动时默认要运行的命令。EXPOSE 端口号声明容器运行时监听的端口但并不会自动映射到宿主机的端口。ENV 环境变量 变量值设置环境变量。ADD 源文件/目录 目标文件/目录将文件或目录复制到容器中。COPY 源文件/目录 目标文件/目录类似于 ADD将文件或目录复制到容器中但更推荐使用 COPY。VOLUME [目录 ]声明持久化目录用于存储数据或与其他容器共享数据。USER 用户名/UID指定运行容器的用户。WORKDIR 路径设置工作目录指定容器中命令执行的默认路径。ONBUILD 命令定义触发器指令在子镜像中执行。指定所生成的镜像作为一个基础镜像时所要运行的命令HEALTHCHECK用于指定容器的健康检查命令可以检查容器内应用程序的状态。 以下是 Dockerfile 中常用的指令及其详细解释 1、FROM 作用指定基础镜像用于构建新镜像的起点。 语法FROM 镜像名称:标签 [AS name] 示例1FROM python:3.9-slim 示例2FROM ubuntu:20.04标签可选指定基础镜像的标签表示特定版本。 [AS name]可选为基础镜像设置一个别名用于多阶段构建。2、LABEL 作用为镜像添加元数据,通常用于提供关于镜像的描述信息。 语法LABEL keyvalue keyvalue ... 示例1LABEL maintainerJohn Doe descriptionMy custom image 示例2LABEL version1.0 descriptionThis is a sample Docker image3、RUN 作用在镜像中执行命令用于安装软件包、设置环境等操作。 语法RUN command 示例1RUN apt-get update apt-get install -y python3 示例2RUN npm install express4、CMD 作用容器启动时要运行的命令。 语法 Exec 格式CMD [executable,param1,param2] Shell 格式CMD command param1 param2 示例 Exec 格式CMD [nginx, -g, daemon off;] Shell 格式CMD nginx -g daemon off;示例1CMD [python, app.py] 示例2CMD [npm, start]5、ENTRYPOINT ENTRYPOINT 指令用于设置容器启动时执行的默认命令。与 CMD 不同ENTRYPOINT 指定的命令不会被 docker run 命令中指定的命令参数覆盖而是作为容器启动时执行的固定命令。 ENTRYPOINT 可以在 Dockerfile 中以两种方式指定Shell 格式和 Exec 格式。 Shell 格式示例 ENTRYPOINT echo Hello, World这条命令将作为 shell 命令执行输出 “Hello, World” 并结束容器运行。 Exec 格式示例 ENTRYPOINT [/bin/bash, -c, echo Hello, World]这条命令以执行格式指定了一个可执行文件 “/bin/bash” 以及参数 “-c”并最终执行了 “echo Hello, World” 命令。 在实际使用中ENTRYPOINT 经常与 CMD 结合使用以便提供灵活性和定制化。如果在 Dockerfile 中同时使用了 ENTRYPOINT 和 CMDCMD 的内容会被当作 ENTRYPOINT 的参数。 作用设置容器启动时要运行的命令。 语法ENTRYPOINT [executable, param1, param2] 示例ENTRYPOINT [nginx, -g, daemon off;]6、COPY 作用复制文件或目录到镜像中。 语法COPY src dest 示例1COPY app.py /app/ 示例2COPY index.html /var/www/html/index.html7、ADD 作用复制文件或目录到镜像中类似于 COPY但功能更多。 语法ADD src dest 示例1ADD file.txt /app/ # 将 JDK 压缩包添加到镜像中 示例2ADD jdk.tar.gz /usr/local/在 Dockerfile 中ADD 和 COPY 都用于将文件从构建上下文复制到容器中但它们之间有一些关键区别 COPY COPY 只能复制本地文件或目录到容器中不支持 URL。 COPY 只进行简单的文件复制操作不会对文件进行解压缩或其他处理。 总的来说COPY 更加明确和简单而 ADD 则具有更多功能。 在大多数情况下如果只需要简单的文件复制操作推荐使用 COPY。如果需要额外功能或复杂的复制需求可以考虑使用 ADD。 8、WORKDIR 作用设置工作目录指定容器中命令执行的默认路径。 语法WORKDIR /path/to/workdir 示例1WORKDIR /usr/src/app 示例2WORKDIR /home/node/app9、 ENV 作用设置环境变量。 语法ENV key value 示例1ENV APP_ENVproduction 示例2ENV PORT300010、EXPOSE 作用声明容器监听的端口。 语法EXPOSE port 示例1EXPOSE 80 示例2EXPOSE 800011、VOLUME 作用声明持久化目录用于存储数据或与其他容器共享数据。 语法VOLUME /myvolume 示例1VOLUME /data 示例2VOLUME [/data] 示例3VOLUME [/var/log/app]12、USER 作用指定运行容器时的用户。 语法USER username 示例USER appuser13、注释 作用在 Dockerfile 中添加注释。 示例# This is a comment14、ONBUILD 命令 作用定义触发器指令在子镜像中执行。 语法ONBUILD 命令 示例1ONBUILD COPY . /app 示例2ONBUILD RUN bundle install15、HEALTHCHECK 作用用于指定容器的健康检查命令可以检查容器内应用程序的状态。 语法HEALTHCHECK [选项] CMD 命令 示例1HEALTHCHECK --interval30s --timeout3s CMD curl -f http://localhost/ || exit 1 示例2HEALTHCHECK --interval5s --timeout2s CMD wget -qO- http://localhost:8080/ || exit 1五、Dockerfile构建镜像 1、创建Dockerfile 使用的文件 index.html html bodyh1hello,运维魔法师/h1p2024.03.11/p/body /html2、编写 Dockerfile [rootzyl-server ~]# mkdir mynginx-app [rootzyl-server ~]# cd mynginx-app/ [rootzyl-server mynginx-app]# [rootzyl-server mynginx-app]# [rootzyl-server mynginx-app]# vi Dockerfile [rootzyl-server mynginx-app]# 以下是一个简单的示例 Dockerfile用于构建一个基于 Nginx 的镜像 # 使用官方的 Nginx 镜像作为基础镜像 FROM nginx:latest# 将本地的 nginx.conf 文件复制到容器中的 /etc/nginx/nginx.conf # COPY nginx.conf /etc/nginx/nginx.conf# 将本地的 index.html 文件复制到容器中的 /usr/share/nginx/html/index.html COPY index.html /usr/share/nginx/html/index.html# 暴露 Nginx 默认的 HTTP 端口 80 EXPOSE 80# 在容器启动时自动启动 Nginx 服务 CMD [nginx, -g, daemon off;]3、执行构建镜像 docker build -t my-nginx-image . 4、查看当前系统中的 Docker 镜像列表 docker images5、运行镜像 docker run -d -p 8080:80 my-nginx-image这将会在端口 8080 上启动一个基于该镜像的 Nginx 服务器。你可以通过访问 http://localhost:8080 来查看 Nginx 默认页面。 The End点点关注收藏不迷路
http://www.zqtcl.cn/news/923395/

相关文章:

  • 没备案的网站怎么做淘客企业做网站服务费
  • 网址站点异常怎么解决机关单位建设网站 说明
  • 阿虎手机站青岛关键词排名系统
  • 西安网站建设聚星互联网站成功案例
  • 山东鲁为建设集团网站百度的合作网站有哪些
  • 电子商务网站建设与管理程序设计题6哪家微网站做的好
  • 网站建设图文片平面网页设计是什么
  • 域外网站宁波建设监理协会
  • 胶州网站建设公司哪家好wordpress怎么改标题
  • php网站开发综合案例免费注册推广网站
  • 邯郸做网站的地方广州网站制作
  • 企业网站制作公司24小时接单郑州手机网站推广外包
  • 接做施工图的网站手机移动网站模板
  • 做网站月薪资多少钱如何打开微信小程序
  • 免费建站网站一级大录像不卡在线看网页无锡网站排名提升
  • 无锡门户网站制作服务郑州艾特网站建设
  • 建设网站 万网网页设计表单代码模板
  • 网站速度查询app开发模板网站
  • 国外案例网站做电商网站有什么用
  • 自己做的网站点击赚钱免费制作二级网站
  • 产品包装设计网站网站开发所需费用
  • 新手学做百度联盟网站html水平导航栏怎么做
  • 单页网站排名seo营销软件
  • 网站建设项目报告书广州品牌网站设计价格
  • 阜阳市建设工程网站wordpress三栏博客主题
  • 邢台学校网站建设制作游戏需要多少钱
  • 品牌做网站网上接外包项目
  • 购物网站设计图百安居装修报价清单
  • 做网站要提供什么莱芜综合频道莱芜新闻
  • 网站怎么做前后台存取马鞍山市网站建设公司