DockerFile介绍
dockerfile是用来构建dokcer镜像的文件!命令参数脚本!
构建步骤∶
1、编写一个dockerfile 文件
2、 docker build构建成为一个镜像
3、docker run运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库!)
DockerFile构建过程
基础知识:
1、每个保留关键字(指令)都是必须是大写字母
2、执行从上到下顺序执行
3、#表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交!
dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单!Docker镜像逐渐成为企业交付的标准,必须要掌握!I
DockerFile:构建文件,定义了一切的步骤,源代码
Dockerlmages:通过DockerFile构建生成的镜像,最终发布和运行的产品!
Docker容婴:容器就是镜像运行记来提供服务器
DockerFile的指令
FROM # 基础镜镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤: tomcat镜像,这个tomcat压缩包!添加内容
WORKDIe # 镜像的工作目录
VOLUME # 挂载的目录
EXPOST # 保留端口配置
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
CMD # 指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENV # 构建的时候设置环境变量!
实战测试
创建一个自己的centos
1. 编写dockerfile文件
[root@192 home]# ls
admin ceshi docker-test-volume litermail mysql
[root@192 home]# mkdir dockerfile
[root@192 home]# ls
admin ceshi dockerfile docker-test-volume litermail mysql
[root@192 home]# cd dockerfile
[root@192 dockerfile]# ls
[root@192 dockerfile]# vim mydockerfile-centos
[root@192 dockerfile]# cat mydockerfile-centos
FROM centos
MAINTAINER lulaoye<1390016394@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
# RUN yum -y install vim
# RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
2. 构建镜像
# docker build -f dockerfile文件路径 -t 镜像名:[tag] .
[root@192 dockerfile]# docker build -f mydockerfile-centos -t mycentos:1.0 .
Sending build context to Docker daemon 2.048kB
Step 1/10 : FROM centos
---> 5d0da3dc9764
Step 2/10 : MAINTAINER lulaoye<1390016394@qq.com>
---> Using cache
---> cec6ac1351f3
Step 3/10 : ENV MYPATH /usr/local
---> Using cache
---> 51a523b9ffad
Step 4/10 : WORKDIR $MYPATH
---> Using cache
---> 9d0118183f7c
[root@192 dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 1.0 8616c673a532 11 seconds ago 231MB
[root@192 dockerfile]# docker run -it mycentos:1.0
[root@6a214c68e41a local]# pwd
/usr/local
3. 测试运行
# 查看操作历史
[root@192 ~]# docker history 8616c673a532
IMAGE CREATED CREATED BY SIZE COMMENT
8616c673a532 4 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B
8917164096e5 4 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
9c683ed506ec 4 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
54f2df9a43ed 4 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B
9d0118183f7c 26 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B
51a523b9ffad 26 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B
cec6ac1351f3 26 minutes ago /bin/sh -c #(nop) MAINTAINER lulaoye<139001… 0B
5d0da3dc9764 13 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 13 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 13 months ago /bin/sh -c #(nop) ADD file:805cb5e15fb6e0bb0… 231MB