广告
返回顶部
首页 > 资讯 > 服务器 >Dockerfile文件详细介绍
  • 357
分享到

Dockerfile文件详细介绍

Dockerfile文件详解Dockerfile文件 2023-05-15 20:05:18 357人浏览 独家记忆
摘要

目录一. Dockerfile的介绍1.1 关于dockerfile1.2 dockerfile文件的组成部分1.3 dockerfile的执行二. docker bulid 命令的

一. dockerfile的介绍

1.1 关于dockerfile

官网中的介绍: Docker can build images automatically by reading the instructions from a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image。

Dockerfile 是一个文本文件,里面包含组装新镜像时用到的基础镜像和各种指令。

使用dockerfile 文件来定义镜像,然后运行镜像,启动容器

1.2 dockerfile文件的组成部分

一个dockerfile文件包含以下部分:

  • 基础镜像信息: 使用FROM关键字指定基础镜像信息,FROM是dockerfile文件的第一条指令。
  • 维护者信息: 使用MAINTAINER关键字指定,通常可以使用dockerfile文件创建者的名字或者邮件作为维护者的信息。
  • 镜像操作指令: 没执行一条镜像操作指令,都会在镜像中添加新的一层。
  • 容器启动执行命令: 用户指定在启动容器时需要执行的命令,通过:CMD ENTRYPOINT指定

常见的镜像操作指令:

指令描述
FROM# 基础镜像,一切从这里开始构建
MAINTAINER镜像是谁写的,姓名+邮箱
RUN镜像构建的时候需要运行的命令
ADD添加内容: 比如加一个Tomcat压缩包
WORKDIR镜像的工作目录
VOLUME镜像挂载的目录
EXPOSE保留暴露的端口
CMD指定这个容器启动的时候要运行的命令,只有最后一个会生效,可以被代替
ENTRYPOINT指定这个容器启动的时候需要运行的命令,可以追加命令
ONBUILD当构建一个被继承DockerFile 的时候就会运行 ONBUILD 的指令。触发指令
COPY类似ADD ,将我们的文件拷贝到镜像中
ENV构建的时候设置环境变量

1.3 dockerfile的执行

在完成dockerfile文件的编写后,执行docker build命令,则会根据dockerfile文件中上下文的内容构建新的docker镜像。

整个构建过程会被递归处理,如果在dockerfile中包含了路径或者URL,都会被递归构建。

二. docker bulid 命令的介绍

docker build 命令用于使用 Dockerfile 创建镜像

语法:

docker build [OPTIONS] PATH | URL | -

常用参数:

参数解释
–build-arg=[]设置镜像创建时的变量;
–cpu-shares设置 cpu 使用权重;
–cpu-period限制 CPU CFS周期;
–cpu-quota限制 CPU CFS配额;
–cpuset-cpus指定使用的CPU id;
–cpuset-mems指定使用的内存 id;
–disable-content-trust忽略校验,默认开启;
-f指定要使用的Dockerfile路径;
–force-rm设置镜像过程中删除中间容器;
–isolation使用容器隔离技术;
–label=[]设置镜像使用的元数据;
-m设置内存最大值;
–memory-swap设置Swap的最大值为内存+swap,"-1"表示不限swap;
–no-cache创建镜像的过程不使用缓存
–pull尝试去更新镜像的新版本;
–quiet, -q安静模式,成功后只输出镜像 ID;
–rm设置镜像成功后删除中间容器;
–shm-size设置/dev/shm的大小,默认值是64M;
–ulimitUlimit配置。
–squash将 Dockerfile 中所有的操作压缩为一层。
–tag, -t:镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
–network:默认 default。在构建期间设置RUN指令的网络模式

三. 使用dockerfile构建镜像实战

编写一个简单的centos镜像

在本地创建一个文件名为Dockerfile的文件

  • 代码如下
FROM Centos:7.9.2009
# 指定基础镜像为 centos
MAINTAINER  mufenggrow mufenggrow@163.com
ENV  MYPATH  /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE  80
 
CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash


  • 构建并测试
    通过命令构建镜像 最后有个 .语法如下:

 docker build -f dockerfile 文件名 -t 镜像名:[tag] .

测试:

因为最开始我们创建的文件名叫Dockerfile所以,不需要使用-f 参数

[root@mufenggrow ~]# ls
anaconda-ks.cfg  Dockerfile 

[root@mufenggrow ~]# docker build -t mufeng_centos .
[root@mufenggrow ~]# docker images
REPOSITORY      TAG        IMAGE ID       CREATED         SIZE
mufeng_centos   latest     5233b48a8b4e   9 seconds aGo   667MB
centos          7.9.2009   eeb6ee3f44bd   19 months ago   204MB

  • 启动测试,查看是否有ifconfig命令
[root@mufenggrow ~]# ls
anaconda-ks.cfg  Dockerfile  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@mufenggrow ~]# docker run -itd mufeng_centos /bin/bash
0801e25a61e5999b1616d1f0073f39a7e5431e34d983445b3f349b7da6bf3fe6
[root@mufenggrow ~]# docker exec -it 0801e25a /bin/bash
[root@0801e25a61e5 local]# pwd
/usr/local
[root@0801e25a61e5 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

总结

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!

到此这篇关于Dockerfile文件详细介绍的文章就介绍到这了,更多相关Dockerfile文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Dockerfile文件详细介绍

本文链接: https://www.lsjlt.com/news/209454.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Dockerfile文件详细介绍
    目录一. dockerfile的介绍1.1 关于dockerfile1.2 dockerfile文件的组成部分1.3 dockerfile的执行二. docker bulid 命令的...
    99+
    2023-05-15
    Dockerfile文件详解 Dockerfile文件
  • Pythonwheel文件详细介绍
    目录1. wheel介绍2. wheel的类型3. 创建wheel4. 导入使用wheel1. wheel介绍 .whl文件(WHL file)也称为轮子(wheel),这是用于py...
    99+
    2022-11-11
  • mycat配置文件的详细介绍
    这篇文章主要为大家分享mycat的配置文件。文中还介绍了mycat常用的几个分片算法的计算过程和使用方法,希望大家通过这篇文章能有所收获。常用配置文件间的关系由上图可以看到 Mycat 的核心配置文件均采用...
    99+
    2022-10-18
  • Linux 文件权限的详细介绍
    linux 的优秀之处就在于它的多用户、多任务的系统。Linux 一般将文件可存取访问的身份分为 3 个类别,分别是 owner、group、others,且 3 种身份各有 read、write、execute 等权限...
    99+
    2022-06-04
    Linux 文件权限
  • djangosettings.py配置文件的详细介绍
    配置文件如下,下面对配置文件进行一一解释 """ Django settings for film1_manager project. Generated by 'django-a...
    99+
    2022-11-10
  • 详细介绍Spring的配置文件
    目录1. Spring的配置文件的命名2. Spring配置文件中有什么3. set注入4. 构造注入1. Spring的配置文件的命名 答:Spring的配置文件是放在resour...
    99+
    2022-11-13
    Spring 配置文件
  • Spring配置文件的详细介绍
    目录 1. Spring的配置文件的命名 2. Spring配置文件中有什么 3. set注入 4. 构造注入 1. Spring的配置文件的命名 答:Spring的配置文件是放在resources文件夹下面的,一般我们都会给他起一个...
    99+
    2023-09-18
    spring set注入 构造注入 bean标签 java
  • SpringBoot配置文件格式详细介绍
    目录一、application.properties配置文件二、yml和yaml配置文件配置格式(1)普通属性(2)数组属性(3)注意事项idea添加配置文件三、生效优先级一、app...
    99+
    2022-11-13
  • win10hosts文件在哪win10hosts文件部位详细介绍
    hosts文件是管理方法用户的网络配置的文件之一,用户们假如要改动一些信息网络得话就必须在这儿进到开展改动,有的用户想要知道win10hosts文件在哪,下边就给用户们给予有关win10hosts文件部位详细介绍的具体内容,用户们下一次碰到...
    99+
    2023-07-19
  • Bash中文件描述符的详细介绍
    前言 linux将所有内核对象当做文件来处理,系统用一个size_t类型来表示一个文件对象,比如对于文件描述符0就表示系统的标准输入设备STDIN,通常情况下STDIN的值为键盘,如read命令就默认从STDIN读取数据...
    99+
    2022-06-04
    bash 文件描述符 linux bash bash stdin
  • Centos文件搜索命令的详细介绍
    本篇内容介绍了“Centos文件搜索命令的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!locate--->文件查找事先生成的...
    99+
    2023-06-10
  • PythonDjango中间件详细介绍
    目录一 .中间件简介二 .编写自己的中间件三 .中间件执行流程一 .中间件简介 中间件是Django请求/响应处理的钩子函数。它是一个轻量级的、低级的"插件系统"...
    99+
    2022-11-11
  • Oracle联机日志文件与归档文件详细介绍
    管理联机日志文件: 联机日志文件以组为单位工作 数据库正常工作至少需要2组日志 联机日志记录所有数据块的变化,用来做实例recover 同一组下的成员之间是镜像关系 more情况日志成员写满redo时发生切换 日志切换时...
    99+
    2022-11-22
    Oracle联机日志文件 Oracle归档文件
  • OAuth2 详细介绍!
    目录 一、文章介绍 二、OAth2 2.1 简介 2.2 OAuth2  授权总体流程 2.3 四种授权模式 1.授权码模式 2.简化模式 3.密码模式 4. 客户端模式 2.4 OAuth2 标准接口 2.5 GitHub 授权登录 1...
    99+
    2023-09-15
    github java
  • springMVC详细介绍
    目录springMVC简介SpringMVC框架的优点第一个SpringMVC程序第一步:创建maven-web项目第二步:在pom.xml中添加依赖和插件第三步注册中央调度器第四步...
    99+
    2022-11-12
  • DockerCompose详细介绍
    目录一、Docker Compose的安装二、Docker Compose的基本使用三、Docker Compose的高级功能四、总结一、Docker Compose的安装 Dock...
    99+
    2023-05-16
    Docker Compose详解 Docker Compose
  • 详细介绍如何在git中删除文件
    在使用git进行版本控制时,我们可能会遇到需要删除文件的情况。但是,git删除文件并不像普通的文件删除那样简单。接下来,本文将会详细介绍如何在git中删除文件。从git中删除文件当我们需要在git中删除文件时,可以使用以下命令:git rm...
    99+
    2023-10-22
  • Android11文件管理权限申请详细介绍
    目录Android 11文件管理权限申请Android 11和低版本的存储权限结合工具类封装Android 11申请管理所有文件权限的BugAndroid 11文件管理权限申请 An...
    99+
    2022-11-12
  • Dockerfile文件详解
    目录什么是dockerfileDockerfile的基本结构Dockerfile文件说明FROMMAINTAINERRUNshell执行exec执行ADDCOPYCMDENTRYPO...
    99+
    2022-11-13
  • CentOS8详细安装教程--图文介绍超详细
    CentOS8详细安装教程--图文介绍超详细 目录 VMware介绍 CentOS介绍 一、下载 镜像地址:Download 这里选择阿里镜像  二、开始安装Centos8 1.【文件】----->【新建虚拟机】(快捷键:Ctrl+N) 2...
    99+
    2023-09-01
    linux 运维 服务器 centos windows
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作