Dockerfile 构建镜像

从 Dockerfile 构建镜像涉及三个步骤

    1. 创建工作目录
    1. 编写 Dockerfile 规格
    1. 使用 docker build 命令构建镜像

1. 创建工作目录

这个根据应用实际情况,自定义

2.编写 Dockerfile 规格

dockerfile


#This is a comment line
FROM rhel7.5
LABEL description="This is a custom httpd image"
MAINTAINER Jingyan
RUN yum install -y httpd
EXPOSE 80
ENV Log "info"
ADD http://jingyan.com/img.pdf /var/www/html
COPY ./src/ var/www/html
USER apache
ENTRYPOINT ["/usr/sbin/httpd"]
CMD ["-D","FOREGROUND"]

1 井号 (#) 开头的行是注释
2 新容器镜像将在 rhel7.5 容器镜像基础上构建
可以将任何其他容器镜像用作基础镜像,而不仅限于来自操作系统分发的镜像
3 LABEL 负责添加通用元数据到镜像中
4 MAINTAINER 负责设置所生成的容器镜像的 Author 字段。您可以使用 docker inspect 命令查看镜像元数据
5 RUN 在当前镜像顶部的新层中执行命令,然后提交结果
所提交的结果将用于 Dockerfile 中的下一步
用于执行命令的 shell 是 /bin/sh
6 EXPOSE 指示容器在运行时侦听指定的网络端口
Docker 容器化环境使用此信息,通过链接的容器功能进行容器互连
EXPOSE 指令仅仅是元数据;不会使端口可从主机进行访问。docker run 命令的 -p 选项可以开放主机上的端口
7 ENV 负责定义可供容器使用的环境变量
可以在 Dockerfile 内声明多个 ENV 指令
可以在容器内使用 env 命令来查看各个环境变量
8 ADD 复制新文件、目录或远程 URL,并将它们添加到容器文件系统中
9 COPY 也复制新文件和目录,并将它们添加到容器文件系统中
COPY无法使用 URL
10 USER 指定运行容器镜像时要使用的用户名或 UID,用于 Dockerfile 中的 RUN、CMD 和ENTRYPOINT 指令
出于安全原因,最好定义 root 之外的其他用户名
11 ENTRYPOINT 指定在创建容器时要执行的默认命令
默认情况下,执行的命令是 /bin/sh -c,除非指定了 ENTRYPOINT
12 CMD 提供 ENTRYPOINT 指令的默认参数

RUN 指令负责修改镜像内容
下列指令负责添加元数据到镜像

  • LABEL
  • MAINTAINER
  • EXPOSE
  • 可以通过 RUN 和 ENTRYPOINT 指令更改容器启动时运行的默认命令

下列指令负责管理容器环境

  • WORKDIR
  • ENV
  • USER

VOLUME 指令在容器中创建挂载点

  • Dockerfile 提供了两个指令,可将资源包含在容器镜像中:
    ADD
    COPY

3. 使用 docker build 命令构建镜像

docker build 命令处理 Dockerfile 并根据其包含的指令构建新镜像,如:docker build -t NAME:TAG DIR
DIR 是工作目录路径。如果工作目录是 shell 的当前目录,它可以是由句号 (.) 指定的当前目录
NAME:TAG 是分配至新镜像的带标签名称。它通过 -t 选项指定。如果未指定 TAG,则镜像自动标记为 latest

Original: https://www.cnblogs.com/xiong97/p/16309638.html
Author: 静言善思
Title: Dockerfile 构建镜像

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611370/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 学习笔记——Django项目中的请求

    2022-10-03 url中的位置参数 位置参数存放的位置 是子应用中的自定义的”urls.py”文件中的路由中。 位置参数的设置: 如果位置参数很多,那…

    数据库 2023年6月14日
    059
  • RocksDB线程局部缓存

    在开发过程中,我们经常会遇到并发问题,解决并发问题通常的方法是加锁保护,比如常用的spinlock,mutex或者rwlock,当然也可以采用无锁编程,对实现要求就比较高了。对于任…

    数据库 2023年6月9日
    080
  • 斗地主游戏的案例开发

    关于java后端的斗地主游戏开发案例(只实现后端部分) 斗地主游戏的案例开发 业务需求分析: 斗地主的做牌, 洗牌, 发牌, 排序(拓展知识), 看牌。业务: 总共有54张牌。点数…

    数据库 2023年6月16日
    077
  • macOS快捷键

    1. 最小化所有应用程序 command+option+h+m 2. 同应用窗口切换 command ~ 3. 截图 "全&a…

    数据库 2023年6月14日
    073
  • gorm 版本对比

    两个版本 github.com/jinzhu/gorm v1.9.16 gorm.io/gorm v1.21.3 Open // jinzhu func Open(dialect …

    数据库 2023年6月9日
    0116
  • 1_Maven

    一. 引言 1.1 项目管理问题 项目中jar包资源越来越多, jar包的管理越来越沉重 1.1.1 繁琐 要为每个项目手动导入所需的jar, 需要搜集全部的jar 1.1.2 复…

    数据库 2023年6月11日
    099
  • 学习笔记——Django项目中请求与响应(json数据)

    2022-10-04 测试json数据与Django项目与pycharm连接,在”postman”软件中。”postman”是一个接…

    数据库 2023年6月14日
    0145
  • 2022-08-16 数据库查询语言之——-DQL

    重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。 构建数据库 创建一张student表: DROP TABLE IF EXIST…

    数据库 2023年5月24日
    075
  • day01-需求分析和系统设计

    对传输数据的分析: 因为在通讯的时候信息的种类和信息比较多,如果使用文本的方式来传递数据,那么服务器拿到信息的时候对其进行拆解会很麻烦。因此使用对象的方式来进行数据的传输(同时使用…

    数据库 2023年6月11日
    087
  • 在Linux中使用crontab

    查看已存在的任务 查看crontab 输入命令: cat /etc/crontab 在设定编辑之前都建议列出服务查看一下: crontab -l 语法: **** user_nam…

    数据库 2023年6月14日
    084
  • MySQL索引

    一、索引介绍 索引(index)是帮助MySQL 高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,…

    数据库 2023年5月24日
    074
  • 「 MySQL高级篇 」MySQL索引原理,设计原则

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    084
  • Git的常见命令

    Git 一、git环境安装 1.初始化本地仓库: git init 2.将本地仓库跟远程仓库建立连接:git remote add name path ​ git clone pa…

    数据库 2023年6月16日
    082
  • 如何使用原生的Feign

    什么是Feign Feign 是由 Netflix 团队开发的一款基于 Java 实现的 HTTP client,借鉴了 Retrofit、 JAXRS-2.0、WebSocket…

    数据库 2023年6月6日
    0120
  • 手把手教你写一个SpringMVC框架

    一、介绍 在日常的 web 开发中,熟悉 java 的同学一定知道,Spring MVC 可以说是目前最流行的框架,之所以如此的流行,原因很简单: 编程简洁、上手简单! 我记得刚开…

    数据库 2023年6月14日
    086
  • Element UI的第一个程序(标签使用)

    1:Element UI 官方文档:https://element.faas.ele.me/ 2:Element UI是什么? 网站快速成型工具 *Element,一套为开发者、设…

    数据库 2023年6月6日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球