Docker Dockerfile 让你轻轻松松创建属于你的镜像 (下)

kouyou · 2020年02月14日 · 34 次阅读

一、创建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, CMDENTRYPOINT )的用户名或者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相关知识的读者, 可以持续关注作者的文章, 后续会推出更多教程
  • 本文为可优原创,有不足之处,请多指教!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册