docker学习之Dockerfile COPY 、ONBUILD等指令构建自定义tomcat镜像

我爱海鲸 2021-09-04 11:47:12 暂无标签

简介COPY 、ONBUILD使用以及构建一个自定义tomcat等等

1、ONBUILD使用:

编写Dockerfile脚本,如下:

FROM centos

RUN yum install -y curl

ENTRYPOINT ["curl", "-s","https://ip.cn/api/index?ip=&type=0"]

ONBUILD RUN echo "father onbuild  -------886"

执行docker build -f /mydocker/Dockerfile4 -t myip_father . (注意后面有一个点)

构建父镜像,再编写脚本,如下:

FROM myip_father

RUN yum install -y curl

CMD ["curl", "-s","https://ip.cn/api/index?ip=&type=0"]

执行docker build -f  /mydocker/Dockerfile5 -t myip_son  . (注意后面有一个点)

构建子镜像,在子镜像构建的过程中执行了父镜像中的ONBUILD,如图:

undefined

2、COPY 使用:

 mkdir -p /haijin/mydocker/tomcat9  创建文件夹目录

cd /haijin/mydocker/tomcat9  进入目录

touch c.txt  创建一个文件

将tomcat和jdk复制到该目录下,如图:

undefined

编写Dockerfile,相关脚本如下:

FROM centos

MAINTAINER haijin<haijin@126.com>

#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下

COPY c.txt /usr/local/cincontainer.txt

#把java与tomcat添加到容器中

ADD jdk-8u191-linux-x64.tar.gz /usr/local/

ADD apache-tomcat-9.0.26.tar.gz /usr/local/

#安装vim编辑器

RUN yum -y install vim

#设置工作访问时候的WORKDIR路径,登录落脚点

ENV MYPATH /usr/local

WORKDIR $MYPATH

#配置java与tomcat环境变量

ENV JAVA_HOME /usr/local/jdk1.8.0_191

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.26

ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.26

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#容器运行时监听的端口

EXPOSE 8080

#启动时运行tomcat

#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.26/bin/startup.sh"]

#CMD ["/usr/local/apache-tomcat-9.0.26/bin/catalina.sh" , "run"]

CMD /usr/local/apache-tomcat-9.0.26/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.26/logs/catalina.out


然后执行docker build -t haijintomcat9 .(注意后面有一个点,对比docker build -f Dockerfile -t haijintomcat9,名称为Dockerfile时,可不写-f以及名称)

运行docker容器,执行命令:docker run -d -p 8080:8080 --name myt9 -v /haijin/mydockerfile/tomcat9/test:/usr/local/apache-tomcat-9.0.26/webapps/test -v /haijin/mydockerfile/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.26/logs --privileged=true haijintomcat9

执行完后访问,http://【ip】:8080/,即可,如图:

undefined

到此我们就成功的自定义了一个docker镜像并成功运行了起来。

docker exec 【容器id】 ls -l 查看容器内部结构

docker exec -it 【容器id】 /bin/bash  进入容器中


你好:我的2025