Dockerfile 让你轻轻松松创建属于你的镜像 (上)
本文目录
docker image
一、思考❓❔
1.什么是image镜像?

docker image
操作系统硬盘上的一个压缩文件系统
拥有运行一个服务的整套资源配置信息
类似于**“样板车”,无法在马路上正常行驶(未提供业务**)
给image镜像**(“样板车”)**添加各种参数之后, 可以创建一个容器来提供业务
2.Dockerfile又是什么呢?

创建docker image镜像的蓝图(指南)
为一个创建镜像的文本文件,有规定的语法和格式要求
需要哪些依赖?
安装docker的系统(Windows或者Linux)
相关安装教程可参考作者以前的文章
二、创建Dockerfile??

创建一个以**“Dockerfile”**命名的文件
1.添加注释
通过
#在命令所在行的上方或下方添加注释
# 这里添加注释(#空格,跟上具体的注释)
添加命令(命令忽略大小写,为了区分,推荐命令使用大写)2.FROM????
用于指定base image父镜像(在哪一个镜像的基础上,创建新的镜像)
一个Dockerfile文件中必须要有一个FROM指令
一般为Dockerfile文件中的第一个指定
常用格式:
FROM <父镜像名>[:<tag版本>]例如:
# 指定父镜像为jdk8,操作系统为alpine
FROM openjdk:8-alpine3.LABEL
用于指定image镜像的元数据信息
为key-value键值对的形式
常用格式:
LABEL <key>=<value> <key>=<value> <key>=<value> ...例如:
# 添加image镜像的作者信息以及对当前镜像的功能描述
# a. maintainer和description为固定形式
# b. LABEL与maintainer之间要有空格
LABEL maintainer="KeYou <keyou100@qq.com>"
LABEL description="This is multi-stage build example."4.COPY
用于从宿主机**(Dockerfile文件所在的电脑)**复制文件或目录到容器中
常用格式:
COPY <源文件或者目录> <容器中的目录>例如:
# 复制当前目录下的Test.java文件到容器/usr/src/myapp/目录下
# a. 一个路径加/和不加/, 是有区别的
# 加/, 为目录
# 不加/, 为文件
# b. 如果容器中所指定的目录不存在, 会自动创建
COPY Test.java /usr/src/myapp/5.WORKDIR
用于设置容器的当前工作目录
类似于Linux中的cd命令
如果指定的目录路径不存在,则会自动创建
常用格式:
WORKDIR /path/to/workdir例如:
# 进入容器/usr/src/myapp/目录中
# myapp目录不存在,则会自动创建
WORKDIR /usr/src/myapp/6.RUN
执行任何linux命令
在image镜像当前层上方添加新的一层
常用格式:
RUN <命令>例如:
# 执行命令
# 由于使用了openjdk 8父镜像,所有有java的安装环境
# 使用javac 编译java源文件
RUN javac Test.java三、总结??

本文介绍了Dockerfile文件常用的操作指令上部分,下部分会在后续文章中呈现,敬请期待!
对于想学习docker相关知识的读者, 可以持续关注作者的文章, 后续会推出更多教程
本文为可优原创,有不足之处,请多指教!

来源:testingpai