DockerFile
dockerfile 介绍
DockerFlie 是用来构建Docker镜像的文件!牧民了参考脚本!
构建步骤:
- 编写一个dockerfile 文件
- docker build 构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像 (DockerHub、阿里云镜像仓库)仓库也分为私有和公有!
比如去https://github.com/…
FROM scratch
ADD centos-7-docker.tar.xz /LABEL org.label-schema.schema-version=“1.0”
org.label-schema.name=“CentOS Base Image”
org.label-schema.vendor=“CentOS”
org.label-schema.license=“GPLv2”
org.label-schema.build-date=“20181204”CMD ["/bin/bash"]
最基础的镜像
很多官方的镜像都是基础包,很多功能都没有,我们通常会自己搭建!
官方既然可以制作镜像,我们也可以!
Dockerfile构建过程
基础知识
- 每个保留关键字(指令)都是必须是大写字母
- 执行从上到下顺序执行
- /# 表示注释
- 每一个指令都会创建提交一个新的镜像层,并提交
dockerfile 是面向开发的,我们以后要发布项目,做镜像,就需要编写Dockerfile文件,这个文件十分简单!
Docker镜像 逐渐成为了一个企业交付的标准,必须掌握!
步骤:
- dockerfile:构建文件定义了一切步骤,源代码。
- dockerimages:通过DockerDlie构建生成的镜像,最终发布和运行的产品。
- docker容器:容器就是镜像运行起来提供服务的。
Dockerfile
以前就是使用别人的,现在我们知道了这些指令后,我们自己来写一个镜像!
FROM 基础镜像,一切从这里开始
MAINTAINER 镜像是谁写的(姓名+邮箱)
RUN 镜像构建的时候需要运行的命令
ADD 步骤:tomcat,这个tomcat压缩包!添加内容
WORKDIR 镜像的工作目录
VOLUME 挂载的目录
EXPOSE 暴露端口
CMD 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD 当构建一个被继承的DockerFile 这个时候就会运行ONBUILD 的指令,触发指令
COPY 类似ADD,将我们的文件拷贝到镜像中
ENV 构建的时候设置环境变量
实战测试
Docker Hub中 99% 的镜像都是从这个基础镜像过