Docker(一)
Docker(二)
Docker(三)
Docker(四)
Docker(五)
Docker(六)
Docker(七)
Docker(八)
DockerFile
DockerFile 介绍
dockerfile 用来构建docker 的文件,命令参数脚本
构建步骤:
- 编写一个docker文件
- docker build 构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像(DockerHub 、阿里云镜像仓库)
很多官方镜像都是基础包,很多功能都没有,是需要自己搭建的。
DockerFile构建过程
基础知识:
- 每个保留关键字(指令)都必须是大写字母
- 执行顺序从上到下,顺序结构
- #表示注释
- 每一个指令都会创建提交一个新的镜像层,并提交
dockerfile是面向开发的,我们以后发布项目做镜像,就需要编写dockerfile文件,这个文件十分简单。
Docker镜像逐渐成为企业交付的并标准,必须要掌握
步骤:开发、部署、运维
DockerFile:构建文件,定义来一切的步骤,就是源代码。
DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品。
Docker容器:容器就是镜像运行起来提供服务
DockerFile指令
FROM #基础镜像,一切从这里开始
MAINTAINER #镜像是谁写的,姓名+邮箱(统一格式)
RUN #镜像构建的时候需要运行的命令
ADD #步骤,例如要搭建tomcat镜像,要加入tomcat压缩包
WORKDIR #镜像的工作目录
VOLUME #挂载的目录位置
EXPOST #暴露端口配置
CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,即可被代替
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以直接追加命令
ONBUILD #当构建一个被继承当镜像,DockerFile这个时候就会执行ONBUILD的指令(触发指令)
COPY #类似ADD,将文件拷贝到镜像中
ENV #构建的时候设置环境变量
举例:创建一个自己的centos
#1.编写DockerFile的文件
mkdir dockerfile
cd dockerfile/
vim mydockerfile
FROM centos
MAINTAINER proger<progerchai@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 mydockerfile -t mycentos:0.1
....
....
Successfully built e2bd75cfe070
Successfully tagged mycentos:0.1
#3.测试运行
docker images #查看一下刚构建的镜像
docker run -it mycentos:0.1 #一定带版本号,否则默认找最新版本
pwd #查看工作目录
- 对比:官方的centos 工作目录是根目录,且没有ipconfig,vim等命令。
我们自己的镜像是个增强版
我们可以列出本地进行的变更历史
docker history (IMAGE ID)