0基础使用dockerfile构建容器镜像

目录

一、使用dockerfile构建镜像

1.1、dockerfile指令

1.FROM

2.RUN

3.CMD

4.ENTRYPOINT

5.EXPOSR

​编辑

6.ADD和COPY

​编辑7.volume

8.USER

二、案例1:dockerfile构建httpd镜像

构建一个指定挂载点的httpd镜像

三、案例2:构建tomcat镜像

三、案例3:构建mariadb镜像

第一步:准备一个脚本初始化并启动mysql

第二步:创建dockerfile文件


一、使用dockerfile构建镜像

除了使用docker commit把自定义容器提交成镜像外,还可以使用Dockerfile来构建自定义镜像。
什么是Dockerfile?
答: Dockerfile把构建镜像的步骤都写出来,然后按顺序执行实现自动构建镜像。就类似于脚本文件,ansible的playbook,saltstack的sls文件等。


1.1、dockerfile指令

1.FROM


FROM指令用于指定其后构建新镜像所使用的基础镜像。FROM指令必是Dockerfile文件中的首条命令。
FROM指令指定的基础image可以是官方远程仓库中的,也可以位于本地仓库,优先本地仓库

2.RUN


RUN指令用于在构建镜像中执行命令,有以下两种格式:


注意:按优化的角度来讲:当有多条要执行的命令,不要使用多条RUN,尽量使用&&符号与\符号连接成一行。因为多条RUN命令会让镜像建立多层(总之就是会变得臃肿了).

3.CMD

CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。

每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉CMD指定的命令。

4.ENTRYPOINT

ENTRYPOINT与CMD非常类似
相同点:
一个Dockerfile只写一条,如果写了多条,那么只有最后—条生效都是容器启动时才运行
不同点:
如果用户启动容器时候指定了运行的命令,ENTRYPOINT不会被运行的命令覆盖,而CMD则会被覆盖
 

5.EXPOSR

用于指定容器在运行时监听的端口

上述运行的端口还需要使用docker run运行容器时通过-p参数映射到宿主机的端口.

6.ENV

用于指定环境变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值