Docker File使用方法

Docker File

dockerfile是我们用来自定义构建docker镜像的脚本文件
构建步骤:
1、编写一个dockerfile文件
2、docker build 构建成为一个镜像
3、docker run运行镜像
4、docker push发布镜像(DockerHub、阿里云镜像仓库!)

1.DockerFile基础知识

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

2.DcokerFile的指令

FROM        # 基础镜像,一切从这里开始构建
MAINTAINER    # 镜像是谁写的:姓名+邮箱
RUN            # 镜像构建的时候需要运行的命令
ADD            # t需要增加的文件(添加的文件回进行解压)
WORKDIR        # 镜像的工作目录
VOLUME        # 挂载的目录
EXPOSE        # 暴露端口配置
CMD            # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT    # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD        # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY        # 类似ADD,将我们文件拷贝到镜像中(本地文件拷贝到镜像中)
ENV            # 构建的时候设置环境变量!

img

一个简单的DockerFile文件

FROM centos:7
MAINTAINER sywl<xxx@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
# 通过这个文件构建镜像
# 命令:docker build -f dockerfile文件路径 -t 镜像名:[tag] .  (注意最后有个点,表示当前路径下)
docker build -f mydockerfile-centos -t mycentos:0.1 .      #这里可以不加-f参数,但是mydockerfile-centos得改成官方默认的名字dockerfile
Successfully built 285c2064af01
Successfully tagged mycentos:0.1
#测试运行
docker run -it mycentos
容器工作目录则为/usr/local,并且有vim和ifconfig命令
#查看镜像的构建过程
docker history [镜像id]

Dockerfile中CMD与ENTRYPOINT的区别

CMD用法
#编写一个CMD用法的Dockerfile
vim Dockerfile_cmd
FROM centos:7
CMD ["ls","-a"]
#构建CMD用法的镜像
docker build -f Dockerfile_cmd -t test_cmd .
#运行镜像
docker run text_cmd

发现容器直接运行了ls -a
请添加图片描述

#但是,CDM创建的镜像在运行容器时在后面追加参数时会报错,需写完整的命令去替换
docker run test_cmd ls -a -l

请添加图片描述

ENTRYPOINT用法
#编写一个ENTRYPOINT用法的Dockerfile
vim Dockerfile_entrypoint
FROM centos:7
ENTRYPOINT ["ls","-a"]
#构建ENTRYPOINT用法的镜像
docker build -f Dockerfile_entrypoint -t test_entrypoint .
#运行镜像
docker run text_entrypoint

此处与cmd无异
请添加图片描述

#但是在运行容器追加参数时,可以正常运行
docker run test_entrypoint  -l

请添加图片描述

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值