19 Dockerfile完全指南_常见的13种指令下

 欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力

对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    专栏:

文章概述: Dockerfile完全指南_常见的13种指令下的介绍

关键词:docker dockerfile

本文目录

Dockerfile完全指南_常见的13种指令下

ENTRYPOINT

ENV

EXPOSE

VOLUME

USER

ONBUILD

Dockerfile完全指南_常见的13种指令下

ENTRYPOINT

配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

指定容器启动的要运行的命令,可以追加命令

指令格式:

ENTRYPOINT ["executable", "param1", "param2"] 

ENTRYPOINT command param1 param2 (shell内部命令)

示例

ENTRYPOINT ["top", "-b"]

注意:

ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。

ENV

这个指令非常简单,就是用于设置环境变量而已,无论是接下来的指令,还是在容器中运行的程序,都可以使用这里定义的环境变量。

指令格式:

ENV <key>=<value>

示例

ENV JAVA_HOME=/usr/local/jdk1.7.0_79

ENV PATH=$JAVA_HOME/bin:$PATH

EXPOSE

指定于外界交互的端口

指令格式:

EXPOSE

示例

EXPOSE 80

注意:

EXPOSE并不会让容器的端口访问到主机。要使其可访问,需要在docker run运行容器时通过-p来发布这些端口,或通过-P参数来发布EXPOSE导出的所有端口。

VOLUME

用于指定持久化目录

指令格式:

VOLUME ["/path/to/dir"]

示例

VOLUME ["/data"]

VOLUME ["/var/www", "/var/log/apache2"]

注意:

一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:

1 卷可以容器间共享和重用

2 容器并不一定要和其它容器共享卷

3 修改卷后会立即生效

4 对卷的修改不会对镜像产生影响

5 卷会一直存在,直到没有任何容器在使用它

USER

USER指令用于将会用以什么样的用户去运行

指令格式:

USER user

USER user:group

注意:

使用USER指定用户后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT都将使用该用户。镜像构建完成后,通过docker run运行容器时,可以通过-u参数来覆盖所指定的用户。

ONBUILD

帮助别人定制而准备的

指令格式:

ONBUILD [INSTRUCTION]

示例

FROM centos

WORKDIR /data

ONBUILD RUN mkdir test

FROM test:02

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值