7、DockerFile
Dockerfile用来构建docker镜像的构建文件!命令脚本!
mkdir docker-test-volume #建立测试文件
vi dockerfile1 #建立脚本,生成镜像
#指令都是大写
FROM centos #来自镜像
VOLUME ["volume01","volume02"] #数据卷目录,匿名挂载
CMD echo "----end----"
CMD /bin/bash #启动
#建立容器
docker build -f dockerfile1 -t cyyz/centos:1.0 . #进行构建
#发布镜像
docker push(DockerHub、阿里云仓库)
#查看卷挂载的路径,测试文件是否同步
7.1 DockerFile构建过程
基础知识
- 每个保留关键字都必须是大写字母
- 指令从上到下执行
- #表示注释
- 每一个指令都会创建一个新的镜像层,并提交!
dockerfile是面向开发的,发布项目需要编写dockerfile文件。
Docker镜像逐渐成为企业交付的标准。
步骤:开发,部署,上线,运维…
DockerFile:构建文件,定义了一切的步骤,源代码。
Dockerimages:通过DockerFile构建生成的镜像,最终发布和运行的产品,原来是jar,war。
Docker容器:容器是镜像运行起来提供服务器
7.2 DockerFile 指令
FROM #基础镜像,一切从这里开始构建
MAINTAINWER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #添加容器
WORKDIR #镜像工作目录
VOLUME #挂载位置
EXPOSE #暴露端口配置
CMD #指定容器启动的时候要运行的命令,只有最后一个会生效,可以替代
ENTRYPOINT #指定命令,可以追加命令
ONBUILD #等构建一个被继承DockerFile,这个时候就会触发运行此指令
COPY #将文件拷贝到镜像中
ENV #构建的时候设置环境变量
7.3 实战测试,构建自己的镜像
DockerHub 中镜像大部分来自scratch
创建一个自己的centos
#1、编写配置文件
FROM centos
MAINTAINER cyyz<1142515845@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 dockerfilecentos -t mycentos:1.0 . #-t 镜像名
#3、测试运行
docker attach 299a4f469cd1 #工作目录默认是根目录
docker history 镜像id #查看id镜像的操作历史
7.4 CMD和ENTRYPOINT的区别
cmd
#编写文件
From centos
CMD ["ls","-a"]
#构建镜像
docker build -f docker-cmd-test -t cmdcentostest .
#构建容器直接执行
docker run 镜像id
#替换掉-a
docker run 镜像id ls -al
entrypoint
#编辑文件
From centos
CMD ["ls","-a"]
#构建进行
docker build -f dockerfile-cmd-entrypoint -t entrypointtest .
#执行镜像
docker run 镜像id
#测试,追加命令
docker run 镜像id -l
Dockerfile中很多命令十分相似,需要了解他们的区别
感谢狂神老师的视频支持点击跳转