一、创建Dockerfile??
- 创建一个以**“Dockerfile”**命名的文件
7.ENV
- 在容器内创建环境变量
常用格式:
# 方式一:
ENV 变量名 变量值
# 方式二:
ENV 变量名=变量值
例如:
# 一行可以定义多个环境变量
ENV username=keyou \
password=123456
# 变量名与值之间, 可以使用空格
# 一行只能定义一个变量
ENV username keyou
ENV password 123456
8.ADD
- 跟COPY类似
- 但有额外特性
- 能解压压缩文件,然后复制到容器中
- 能远程下载
常用格式:
ADD 源地址 目的地址
例如:
# 将宿主机中的example.txt文件,复制粘贴至容器中的oneDir目录下
ADD example.txt /oneDir/
# # 将远程keyou.tar.xz文件下载,然后复制粘贴至容器中的oneDir目录下
ADD http://www.keyou.site/keyou.tar.xz /oneDir/
9.USER
- 设置在Dockerfile中运行Linux命令(
RUN
,CMD
和ENTRYPOINT
)的用户名或者UID
常用格式:
USER 用户名
USER 用户UID:用户GID
例如:
# 设置运行命令的用户为keyou
USER keyou
10.VOLUME
- 指定容器中需要持久保存的目录(数据备份)或者文件
常用格式:
VOLUME 容器中的目录或文件
例如:
# 指定容器中的data目录可以与宿主机目录进行一一映射
VOLUME /data
11.CMD
-
让可运行容器启动默认会执行的命令(往往是初始化服务)
-
运行容器时,不加任何参数,会自动执行CMD,如果添加参数则会忽略CMD
-
Dockerfile文件中往往只有一个CMD,多个CMD只有最后一个生效
-
可以为ENTRYPOINT 提供默认参数
常用格式:
# exce形式
CMD ["可执行命令","参数1","参数2"]
# shell形式
CMD 可执行命令 参数1 参数2
例如:
# exce形式
CMD ["ls", "/"]
# shell形式
CMD ls /
12.ENTRYPOINT
-
让可运行容器启动默认会执行的命令(往往是初始化服务)
-
运行容器时,加与不加参数,都会自动执行ENTRYPOINT(添加参数也不会忽略ENTRYPOINT)
-
Dockerfile文件中可以有多个ENTRYPOINT,多个ENTRYPOINT都会执行
-
可以使用CMD为ENTRYPOINT 提供默认参数
常用格式:
# exce形式
ENTRYPOINT ["可执行命令","参数1","参数2"]
# shell形式
ENTRYPOINT 可执行命令 参数1 参数2
# 使用CMD提供默认参数
ENTRYPOINT ["可执行命令", "参数1"]
CMD ["参数2"]
例如:
ENTRYPOINT ["/bin/cat"]
CMD ["/etc/passwd"]
二、总结??
- 本文介绍了Dockerfile文件常用的操作指令下部分,上部分内容可参考作者往期文章
- 对于想学习docker相关知识的读者, 可以持续关注作者的文章, 后续会推出更多教程
- 本文为可优原创,有不足之处,请多指教!
欢迎来到testingpai.com!
注册 关于