Docker: Dockerfile 镜像构建文件

DockerFile介绍

DockerFile :  就是用来构建docker镜像的构建文件,命令脚本

构建步骤:

1、编写一个dockerFile 文件

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

3、docker run 运行镜像

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

DockerFile构建过程

基础知识:

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

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

3、# 表示注释

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

DockerFile的指令

FROM                              #基础镜像,一切从这里开始构建

MAINTAINER                  #镜像是谁写的,姓名+邮箱

RUN                                # 镜像构建的时候需要运行的命令

ADD                                # 步骤:Tomcat镜像,这个Tomcat的压缩包!添加内容

WORKDIR                      #镜像的工作目录

VOLUME                         #挂载的目录

EXPOSE                         #保留端口配置

CMD                                #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代

ENTRYPOINT                  #指定这个容器启动的时候要运行的命令,可以追加命令

ONBUILD                         #当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令

COPY                               #类似ADD,将我们文件拷贝到镜像中

ENV                                  #构建的时候设置环境变量

创建一个自己的centos

# 1、编写自己的dockerFile

FROM centos
MAINTAINER zzj<123456@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 .\dockerFile1 -t mycentos:0.1 .

 

 

我们可以通过命令 docker history 镜像id 查看当前镜像是怎么一步步的构建出来的

 

 我们平时拿到一个镜像,可以查看它是怎么做的

CMD 和 ENTRYPOINT 的区别

CMD                                #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代

ENTRYPOINT                  #指定这个容器启动的时候要运行的命令,可以追加命令

测试CMD

# 1、编写dockerFile

# 2、构建镜像

docker build -f .\dockerFileCmd -t mycentoscmd .

 # 3、run运行,发现cmd命令生效

如果直接在run 后面增加参数

PS C:\docker\dockerFiles> docker run 7d202bdf002b -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "-l": executable file not found in $PATH: unknown.

只会去执行 -l ,把cmd的参数 ls -a直接替换了,就报了上面的错误

正确的做法就是:重新写完整参数,这就是cmd的特殊点

 docker run 7d202bdf002b ls -al

测试 ENTRYPOINT

1、编写dockerFile

PS C:\docker\dockerFiles> cat .\dockerFileEntryPoint
FROM centos
ENTRYPOINT ["ls","-a"]
2、构建镜像

 docker build -f .\dockerFileEntryPoint -t cneotsentrypoint .

3、测试命令

直接添加命令可以执行,我们的追加命令是可以直接拼接在ENTRYPOINT后面的

 docker run cneotsentrypoint -l

 

Docker命令小结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值