Dockerfile让你轻轻松松创建属于你的镜像(上)
一、思考❓❔
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-alpine
3.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相关知识的读者, 可以持续关注作者的文章, 后续会推出更多教程
- 本文为可优原创,有不足之处,请多指教!
*******请大家尊重原创,如要转载,请注明出处:
转载自:https://www.cnblogs.com/keyou1/,谢谢!!*******
*******有任何疑问,欢迎加入软件测试交流群:699968364(加群时,请备注:博客园-可优)。博主QQ:3429173264*******
*******有任何疑问,欢迎加入软件测试交流群:699968364(加群时,请备注:博客园-可优)。博主QQ:3429173264*******