docker之Dockerfile文件常用指令描述

2019年2月18日09:28:14 发表评论

docker之Dockerfile文件常用指令描述

一点PHP博客分享关于使用docker容器中Dockerfile文件描述,在创建build一个docker容器时需要通过Dockerfile文件中的信息描述来指定创建,以下是Dockerfile文件中一些常用指令解释。

FROM centos 指定构建使用的基础镜像
MAINTAINER //创建者信息
ENV REFRESHED_AT 2018-08-09 //设置环境变量例如REFRESHED_AT = 2018-08-09
ADD [source][destination] //从当前目录复制文件到容器, source可以是URL或者是启动配置上下
文中的一个文件, destination是容器内的路径. 会自动处理目录, 压缩包等情况
copy [path][destination] //单纯的复制文件进容器
VOLUME [ "/data" ]: 声明一个数据卷, 可用于挂载, []里面是路径
例: VOLUME [ "/var/lib/redis", "/var/log/redis" ] //将宿机目录/var/lib/redis挂载到容器目录
var/log/redis中,这样修改文件的时候可以不用每次都重新构建容器,建议不这样使用?
WORKDIR: 指定RUN、CMD与ENTRYPOINT命令的工作目录
例: WORKDIR /opt/nodeapp
ENTRYPOINT
两种格式:
    ENTRYPOINT ["executable", "param1", "param2"]
    ENTRYPOINT command param1 param2(shell中执行)。
配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。
每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。
ONBUILD
格式为 ONBUILD [INSTRUCTION]。
配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。
例如,Dockerfile 使用如下的内容创建了镜像 image-A。
[...]
ONBUILD ADD . /app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src
[...]
如果基于 image-A 创建新的镜像时,新的Dockerfile中使用 FROM image-A指定基础镜像时,会自动执行 ONBUILD 指令内容,等价于在后面添加了两条指令。
EXPOSE 3000 //告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过
-P,Docker 主机会自动分配一个端口转发到指定的端口。
CMD ls /home
CMD
支持三种格式
    CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;
    CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;
    CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;
注:RUN,CMD , ENTRYPOINT 区别
RUN命令执行命令并创建新的镜像层,通常用于安装软件包
CMD命令设置容器启动后默认执行的命令及其参数,但CMD设置的命令能够被docker run命令后面的命令行参数替换
ENTRYPOINT配置容器启动时的执行命令(不会被忽略,一定会被执行,即使运行 docker run时指定了其他命令)
一点php博客网站建设,一点技术分享。

x

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: