Docker实战 使用Dockerfile生成定制镜像

什么是dockerfile

Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条条指令组成,每条指令对应Linux下面一条指令。docker程序就这些Dockerfile指令翻译成真正的Linux命令。Dockerfile有自己的书写格式和支持的命令,Docker程序解决这些命令的相互之间的依赖关系。docker程序将读取dockerfile,根据指令生成相对应的镜像。

实战搭建tomcat容器

根据之前讲过的,在kernel之上首先要挂在基础镜像,在这里我们选择centos作为基础镜像,然后配置我们需要的Dockerfile。

导入我们需要add的文件包:
apache-tomcat jdk

在这里插入图片描述
在这里我其实进入了一个误区,根据容器的性质,至少有一个工作在前台的守护进程,但是在这里我直接pull了一个centos镜像,根据下面这个图,我们可以看出来,这个centos是来自于library的:

在这里插入图片描述
这样的话,在后面run的时候会直接自动结束,因此我在这里使用了另一个镜像:

docker pull hub.c.163.com/public/centos:6.7-tools

这个镜像就会有守护进程,因此不会退出,接下来我们配置我们所需要的Dockerfile

FROM hub.c.163.com/public/centos
MAINTAINER dmoann

ADD ./apache-tomcat-8.5.57.tar.gz /root
ADD ./jdk-8u221-linux-x64.tar.gz /root

ENV JAVA_HOME /root/jkd1.8.0_25
ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 8080

ENTRYPOINT /root/apache-tomcat-8.5.57/bin/startup.sh $$ tailf /root/apache-tomcat-8.5.57/logs/catalina.out

这里的每一行语句都需要产生一级新的镜像,因此行数是有限的,最大128行。通常多的命令我们使用&&连接。

点击ESC,然后:wq

运行以下命令创建镜像

docker build -t tomcat:v2.0 .

在这里插入图片描述

PS:tomcat:v1.0是使用library/centos生成的,由于没有守护进程,所以会自动结束进程,tomcat:v2.0是使用我上面说的那个public/centos镜像,是不会自动结束的,因此下面使用的是tomcat:v2.0。

这里是docker镜像生成成功的截图。
在这里插入图片描述
镜像生成之后,我们要开始run一个容器出来

docker run --name tomcatpublic -p 80:8080 -d tomcat:v2.0

使用docker ps -a查看容器状态,显示正在运行,大功告成!登录http://0.0.0.0:80
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值