Docker - DockerFile

发布时间 2023-07-10 22:42:18作者: HOUHUILIN

 

 

DockerFile的介绍

DockerFile的指令

DockerFile构建过程

 

 

 

 

 

 

DockerFile的介绍

 

狂神:dockerfile是用来构建docker镜像的文件命令参数脚本。

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

狂神:Docker镜像逐渐成为企业交付的标准,必须要掌握!

 

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

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

DockerContainer:容器就是镜像运行起来提供服务的。

 

 

DockerFile的指令

FROM                # 指定基础镜像(一切从这里开始构建)
MAINTAINER          # 指定维护者信息(镜像是谁写的,姓名+邮箱)
RUN                 # 镜像构建的时候需要运行的命令/指定容器启动后要做的事情
ADD                 # COPY文件,会自动解压(步骤:tomcat镜像,这个tomcat压缩包,添加内容)
WORKDIR             # 设置当前工作目录(镜像的工作目录)
VOLUME              # 设置卷,挂载主机目录(挂载的步骤)
EXPOSE              # 指定对外的端口(保留端口配置)
CMD                 # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT          # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD             # 当构建一个被继承 DockerFile 这个时候就会运行 ONBUILD的指令。触发指令
COPY                # 类似ADD,将文件拷贝到镜像中
ENV                 # 构建的时候设置环境变量

 

DockerFile构建过程

1、每个保留关键字(指令)都必须是大写字母

2、执行从上到下顺序执行

3、# 表示注释

4、每一个指令都会创建提交一个新的镜像层,并提交

 

 

示例:centos的dockerfile

FROM scratch
MAINTAINER The CentOS Project <cloud-ops@centos.org>
ADD c7-docker.tar.xz /
LABEL name="CentOS Base Image" \
    vendor="CentOS" \
    license="GPLv2" \
    build-date="2016-03-04"

# Volumes for systemd
# VOLUME ["/run", "/tmp"]

# Environment for systemd
# ENV container=docker

# For systemd usage this changes to /usr/sbin/init
# Keeping it as /bin/bash for compatability with previous
CMD ["/bin/bash"]

 

 

 

构建步骤:

1、编写一个dockerfile文件

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

3、docker run运行镜像

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

 

 

1、创建一个目录dockerfile,编写dockerfile文件:mydockerfile-centos

FROM centos
MAINTAINER harley<hhl686666@163.com>

# 设置环境变量MYPATH
ENV MYPATH /usr/local
# 设置工作目录(docker run -it运行镜像之后所在的目录)
WOEKDIR $MYPATH

# 安装vim、net-tools
RUN yum -y install vim
RUN yum -y install net-tools

# 暴露80端口
EXPOSE 80
CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash

 

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

docker build -f mydockerfile-centos -t mycentos:0.1 .

mydockerfile-centos:dockerfile文件路径

mycentos:0.1镜像名

 

3、docker run运行镜像:docker run -it mycentos:0.1