Docker 大热,还不了解 Dockerfile 你就OUT啦~
前言:近年来 Docker 非常火,想要玩好 Docker 的话 Dockerfile 是绕不开的,这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。今天我们就来聊一聊 Dockerfile 怎么写,那些指令到底是什么意思。
一、先来看一个简单的 Dockerfile
#这个Dockerfile作用是打一个python3项目环境
二、Dockerfile 编写规则
指令到小写不敏感,为了区分习惯上用大写
Dockerfile 非注释行第一行必须是 FROM
文件名必须是 Dockerfile
Dockerfile 指定一个专门的目录为工作空间
所有引入映射的文件必须在这个工作空间目录下
Dockerfile 工作空间目录下支持隐藏文件(.dockeringore)
(.dockeringore)作用是用于存放不需要打包导入镜像的文件,根目录就是工作空间目录
每一条指令都会生成一个镜像层,镜像层多了执行效率就慢,能写成一条指定的就写成一条
三、Dockerfile 指令详解
1.FROM:基础镜像
1.1、FROM是Dockerfile文件开篇第一个非注释行代码
2.MAINTAINER:镜像作者信息
2.1、废弃了,使用LABLE替代
3.LABLE:镜像描述信息
3.1、LABLE author=“haili”
4.COPY:从 Docker 宿主机复制文件至创建的新镜像文件
4.1、COPY
5.ADD:类似于 COPY 指令,ADD 支持 tar 文件和 URL 路径
5.1、ADD
6.WORKDIR:用于为 Dockerfile 中所有的 RUN、CMD、ENTRYPOINT、COPY、ADD 指定设定工作目录
6.1、WORKDIR /mnt,如果目录不存在会自动创建,包括他的父目录
7.VOLUME:数据卷,用于在 image 中创建挂载点目录,以挂载 Docker host 上的卷或者其他容器上的卷
7.1、VOLUM mount_point
8.EXPOSE:为容器打开指定的监听端口以实现与外部通信
8.1、EXPOSE
9.ENV:用于为镜像定义所需的环境变量,可以被 Dockerfile 文件中其他命令调用(ENV、ADD、COPY、RUN、CMD)
9.1、ENV key value
10.RUN:docker build 镜像构建的时候需要执行的 shell 命令默认"/bin/sh -c"运行
10.1、docker build过程中需要执行的命令
11.CMD:启动容器指定默认要运行的程序或命令,默认"/bin/sh -c"运行
11.1、docker run过程中需要执行的命令
12.ENTRYPOINT:类型 CMD 指令的功能,用于为容器指定默认运行程序或命令
12.1、与CMD不同的是,由ENTRYPOINT启动的程序不会被docker run命令行指定的参数覆盖,这些命令行参数会被当做参数传递给ENTRYPOINT指定的程序
13.CMD 和 ENTRYPOINT 同时存在 Dockerfile 中
13.1、CMD的值会当做参数传递给ENTRYPOINT
14.USER:指定运行 image 时和 Dockerfile 中任何 RUN、CMD、ENTRYPOINT 指令指定的程序的用户
14.1、使用用户名或者UID
15.HEALTHCHECK:健康检查,定义一个命令用于检查主进程工作状态是否健康
15.1、HEALTHCHECK参数
16.SHELL:指定运行 RUN、CMD、ENTRYPOINT 的 shell 程序
17.OPSIGNAL:给主进程发送信号
18.ARG:docker build 过程中的参数
18.1、定义pyton镜像作者,通过参数传入
19.ONBUILD:用于在 Dockerfile 中定义一个触发器
19.1、Dockerfile1中加一个ONBUILD add file,当docker build -t=testpython Dockerfile1的时候ONBUIL
房子要一层一层盖,知识要一点一点学。大家在学习过程中要好基础,多上手实操,话不多说,这里狠狠上一次干货!我熬夜整理好的各阶段(功能、接口、自动化、性能、测开)技能学习资料+实操讲解,非常适合私下里学习,比找资料自学高效多了,分享给你们。
领取关 w/x/g/z/h:软件测试小dao
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
Docker 大热,还不了解 Dockerfile 你就OUT啦~相关推荐
- AI 时代,还不了解大数据?
来自:IT人的职场进阶 如果要问最近几年,IT行业哪个技术方向最火?一定属于ABC,即AI + Big Data + Cloud,也就是人工智能.大数据和云计算. 这几年,随着互联网大潮走向低谷,同时 ...
- docker镜像的构建及Dockerfile的详解应用,镜像加速器,镜像优化
docker镜像的构建及dockerfile的祥解应用 1.镜像的构建 1.1创建一个Dockerfile 1.2构建镜像 1.3查看镜像的分层结构 1.4镜像的缓存特性 2.Dockerfile详解 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 都2021年了,不会还有人连深度学习还不了解吧(六)-- Padding篇
导读 本篇文章主要介绍CNN中常见的填充方式Padding,Padding在CNN中用的很多,是CNN必不可少的组成部分,使用Padding的目的主要是为了调整输出的大小,是必须搞清楚的知识点.如果你 ...
- 附005.Docker Compose文件详解
一 Docker Compose文件简介 compose文件使用yml格式,主要分为了四个区域: version:用于指定当前docker-compose.yml语法遵循哪个版本 services:服 ...
- docker常用参数详解,docker run常用参数详解(精)
1. 查询github上的镜像 docker search sybase 2. 下载 docker pull ifnazar/sybase_15_7 3. 删除镜像 docker rmi -f run ...
- 乘风破浪的迁移学习!四字成语讲明白这个大热研究方向
导读:现在迁移学习大热,它红,是有它的道理的.什么是迁移学习?本文用最通俗易懂的语言为你讲解. 作者:木羊同学 来源:大数据DT(ID:hzdashuju) 迁移学习现在是很热的一个前沿研究方向. 当 ...
- dockerfile详解-dockerfile构建过程解析,dockerfile体系结构保留字解析,案例解析
Dockerfile详解 1.定义:Dockerfile是用来构建Docker镜像的构建文件,是一系列命令和参数构成的脚本 2.步骤: --手动编写一个dockerfile文件,必须要要符合规范 -- ...
- kubernetes基础之docker file文件详解(百分之百空手接白刃篇)
docker file让你有意想不到的收获 针对这个docker file自己也是找了好久,想着怎么可以用自己的话,讲出来.当你学习一个东西的时候,不是因为你学会了他就过,而是你还要试着给别人讲出来, ...
最新文章
- curl php 空,直接访问链接有数据,CURL GET 一片空白
- AJAX 缓存问题的两种解决方法(IE
- C# 发送电子邮件源码片段
- operator new在C++中的各种写法
- c语言甘勇第二版第五章答案,C语言(1) - Patata的个人页面 - OSCHINA - 中文开源技术交流社区...
- devops实践指南_开发DevOps的实用指南:减少八卦的步骤
- python面向对象和面向过程_python--什么是面向对象和面向过程,对象的进化,什么是对象...
- textarea文本框默认显示文本鼠标点击时清空
- python sklearn做文本分类
- Print 与Debug.Log的区别
- RatingBar的实现
- 基于R语言的贝叶斯网络模型、现代贝叶斯统计学方法
- 网络扫描实验(win10使用nmap,X-Scan工具使用)
- Acer 4750 安装黑苹果_黑苹果安装 你要知道的那些坑
- Nginx支持ipv6
- python统计字符串个数_python实现字符串中字符分类及个数统计
- windows10系统纯净版下载地址
- 【Web前端】【疑难杂症】轮播图图片自适应显示问题(bootstrap3轮播图)
- C语言实现贪吃蛇代码
- python小数乘法_运营管理案例分析:《质保主管 Hank Kolb》.docx
热门文章
- IT女孩特不烦恼---九月实习总结
- 机器人编程软件semia_AlphaRobot2S(Alpha2机器人PC编程软件)
- 【源码解读】BertLayer
- vue报错 ‘Cannot find module ‘D:\nodejs\node_modules\npm\bin\npm-cli.js‘
- 小实操(3): 利用键盘事件实现小人快跑
- minio分布式对象存储
- 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件
- mybatis-Springboot配置多数据源出现错误记录
- GreenPlum企业应用实践--第五章SQL执行计划
- 今晚直播,你该了解的MySQL 8.0 SQL优化新特性