Docker之Dockerfile案例演示

2.自定义镜像mycentos

==============================================================================

我们从官方pull下来的centos镜像是mini版的,所以不带有vim这些基础命令,那我们就来自定义一个镜像,功能比官方下载的强大点,同时运用下各个指令。

2.1 编写


首先我们来编写对应的Dockerfile文件。内容如下

FROM centos

MAINTAINER bobodengpbs@163.com

ENV MYPATH /usr/local

WORKDIR $MYPATH

RUN yum -y install vim

EXPOSE 80

CMD echo $MYPATH

CMD echo “success--------------ok”

CMD /bin/bash

2.2 构建


然后将脚本构建成对应的镜像文件。

docker build -f dockerfile名称 -t 新建的镜像名:TAG .

在这里插入图片描述

查看镜像

在这里插入图片描述

2.3 运行


运行镜像文件。

docker run -it 新镜像名称:TAG

在这里插入图片描述

运行容器后,落脚点是 /usr/local 因为我们配置了WORKDIR

2.4 镜像历史


查看一个镜像文件的变更历史可以使用如下命令:

docker history 镜像名

在这里插入图片描述

在本例中我们用到了 FROM MAINTAINER RUN EXPOSE ENV WORKDIR 命令

3.CMD/ENTRYPOINT案例

=================================================================================

接下来我们通过案例来看看CMDENTRYPOINT两个命令的区别,这两个命令的作用都是指定一个容器启动时要运行的命令

3.1 CMD


Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换掉,我们通过tomcat的案例来介绍。

正常情况如下

docker run -it -p 8888:8080 tomcat

在这里插入图片描述

但是当我们在 执行命令后添加参数的话,如下

在这里插入图片描述

原因是我们先看Tomact对应的 Dockerfile文件

在这里插入图片描述

然而我们的run命令 把Dockerfile中的最后的CMD命令覆盖了~~

3.2 ENTRYPOINT


有别于CMD命令,ENTRYPOINT命令是在 docker run 之后的参数会被当做参数传递给 ENTRYPOINT,之后形成新的组合命令。我们通过curl指令来介绍这个案例。

Dockerfile文件如下:

FROM centos

RUN yum install -y curl

ENTRYPOINT [ “curl”, “-s”, “http://www.baidu.com” ]

构建

在这里插入图片描述

正常run

在这里插入图片描述

-i参数 查看响应报文头

在这里插入图片描述

通过这个例子 可以看到ENTRYPOINT不会覆盖,而是组合成了一个新的命令。

4.自定义Tomcat9

===========================================================================

最后我们通过自定义一个tomcat镜像来介绍下ADDCOPY这两个命令的区别。

4.1 创建个tomcat目录


在这里插入图片描述

4.2 添加一个文件


在当前目录下创建一个 hello.txt文件,作用是COPY到容器中

在这里插入图片描述

4.3 拷贝相关软件


准备对应的jdktomcat的压缩文件。

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

  • 并发编程面试题汇总

  • JVM面试题汇总

  • Netty常被问到的那些面试题汇总

  • Tomcat面试题整理汇总

  • Mysql面试题汇总

  • Spring源码深度解析

  • Mybatis常见面试题汇总

  • Nginx那些面试题汇总

  • Zookeeper面试题汇总

  • RabbitMQ常见面试题汇总

JVM常频面试:

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(一)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(二)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Redis常见面试题汇总(300+题)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
RabbitMQ常见面试题汇总

JVM常频面试:

[外链图片转存中…(img-JSM8bouG-1711965957838)]

Mysql面试题汇总(一)

[外链图片转存中…(img-RfHgmCcT-1711965957838)]

Mysql面试题汇总(二)

[外链图片转存中…(img-6iteUm5c-1711965957838)]

Redis常见面试题汇总(300+题)

[外链图片转存中…(img-7oveguuy-1711965957839)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值