Skip to content

Latest commit

 

History

History
80 lines (51 loc) · 2.2 KB

13. DockerFile.md

File metadata and controls

80 lines (51 loc) · 2.2 KB

DockerFile

DockerFile介绍

dockerfile是用来构建docker镜像的文件!命令参数脚本!

DockerFile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,

DockerFile: 构建文件,定义了一切得步骤,源代码

DockerImages: 通过dockerfile构建生成的镜像。最终发布和运行的产品。

Docker容器:容器使得镜像运行起来,提供服务器

构建步骤:

1、 编写一个dockerfile文件

2、 docker build 构建称为一个镜像

3、 docker run运行镜像

4、 docker push发布镜像(DockerHub 、阿里云仓库)

DockerFile命令大全

FROM				# from:基础镜像,一切从这里开始构建
MAINTAINER			# maintainer:镜像是谁写的, 姓名+邮箱
RUN					# run:镜像构建的时候需要运行的命令
ADD					# add:步骤,tomcat镜像,这个tomcat压缩包!添加内容 添加同目录
WORKDIR				# workdir:镜像的工作目录
VOLUME				# volume:挂载的目录
EXPOSE				# expose:保留端口配置
CMD					# cmd:指定这个容器启动的时候要运行的命令,只有最后一个命令会生效,可被替代
ENTRYPOINT			# entrypoint:指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD				# onbuild:当构建一个被继承DockerFile这个时候就会运行onbuild的指令,触发指令
COPY				# copy:类似ADD,将我们文件拷贝到镜像中
ENV					# env:构建的时候设置环境变量!

样例:

# 编写dockerFile
vim mydockerfile-centos

FROM centos 
MAINTAINER lizehan<[email protected]>

ENV MYPATH /usr/local
WORKDIR $MYPATH

#构建镜像运行的命令, 相当于在镜像里面下载了vim
RUN yum -y install vim

EXPOSE 80

CMD echo "------end --------"   

追随build的过程

docker history {dockerID} 可以看他的dockerFile怎么一步一步来的

CMD和ENTRYPOINT的区别

CMD会被替换但是ENTRYPOINT是追加

例如当我们使用CMD [ls]的时候,运行docker会执行这个命令。但是如果我们运行这个docker的时候加入参数

docker run {镜像文件} -l

就会找不到-l这个命令,但是如果使用ENTRYPOINT的话就是会运行[ls -l]这个方法