DockerFile

Dockerfile

Dockerfile介绍

dockerfile是用来构建docker镜像的文件!命令参数脚步!

构建步骤

1、编写一个dockerfile文件
2、docker build 构建成为一个镜像
3、docker run 镜像id 运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库)

Dockerfile构建过程

基础知识:

1、每个保留关键字(指令)都必须是大写字母
2、执行从上到下顺序执行
3、# 表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交

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              # 构建的时候设置环境变量!

实战测试

Docker Hub中99%的镜像都是从这个基础镜像过来的 FROM scratch, 然后配置需要的软件和配置来进行构建

创建一个自己的centos

# 1、编写dockerfile文件
FROM centos
MAINTAINER xxxx<xxxx@email.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]
[+] Building 0.1s (8/8) FINISHED                                                                                            
 => [internal] load build definition from mydockerfile-centos                                                          0.0s
 => => transferring dockerfile: 46B                                                                                    0.0s
 => [internal] load .dockerignore                                                                                      0.0s
 => => transferring context: 2B                                                                                        0.0s
 => [internal] load metadata for docker.io/library/centos:latest                                                       0.0s
 => [1/4] FROM docker.io/library/centos                                                                                0.0s
 => CACHED [2/4] WORKDIR /usr/local                                                                                    0.0s
 => CACHED [3/4] RUN yum -y install vim                                                                                0.0s
 => CACHED [4/4] RUN yum -y install net-tools                                                                          0.0s
 => exporting to image                                                                                                 0.0s
 => => exporting layers                                                                                                0.0s
 => => writing image sha256:a6303a994e32278394b7d9c560eac5a03da22afbc8f0d548a0868ad8b27d88e4                           0.0s
 => => naming to docker.io/library/mycentos:0.1

# 3、测试运行
docker images #查看构建的镜像是否存在
REPOSITORY         TAG       IMAGE ID       CREATED         SIZE
mycentos           0.1       a6303a994e32   4 minutes ago   287MB

docker run -it mycentos:0.1
[root@e0949c873196 local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@e0949c873196 local]# pwd

可以列出本地进行的变更历史

docker history a6303a994e32
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
a6303a994e32   9 minutes ago    CMD ["/bin/bash"]                               0B        buildkit.dockerfile.v0
<missing>      9 minutes ago    CMD ["/bin/sh" "-c" "echo \"----end----\""]     0B        buildkit.dockerfile.v0
<missing>      9 minutes ago    CMD ["/bin/sh" "-c" "echo $MYPATH"]             0B        buildkit.dockerfile.v0
<missing>      9 minutes ago    EXPOSE map[80/tcp:{}]                           0B        buildkit.dockerfile.v0
<missing>      9 minutes ago    RUN /bin/sh -c yum -y install net-tools # bu…   14.4MB    buildkit.dockerfile.v0
<missing>      9 minutes ago    RUN /bin/sh -c yum -y install vim # buildkit    63.4MB    buildkit.dockerfile.v0
<missing>      10 minutes ago   WORKDIR /usr/local                              0B        buildkit.dockerfile.v0
<missing>      10 minutes ago   ENV MYPATH=/usr/local                           0B        buildkit.dockerfile.v0
<missing>      10 minutes ago   MAINTAINER qingyueyiyun<qingyueyiyun@163.com>   0B        buildkit.dockerfile.v0
<missing>      7 months ago     /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      7 months ago     /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B        
<missing>      7 months ago     /bin/sh -c #(nop) ADD file:bd7a2aed6ede423b7…   209MB  

实战:tomcat镜像

1、准备镜像文件tomcat压缩包,jdk压缩包
2、编写dockerfile文件,官方命名Dockerfile,build会自动寻找这个文件,不需要-f指定了!

posted @ 2021-07-08 23:18  phper-liunian  阅读(70)  评论(0编辑  收藏  举报