Docker 自定義tomcat9

目標:自定義tomcat9的鏡像,並通過該鏡像成功生成容器
準備工作:
1、安裝了docker
2、準備apache-tomcat-9.0.19.tar.gzjdk-8u181-linux-x64.tar.gz壓縮包
ps:文中馬賽克掉的是因爲我是安裝完之後才寫的這篇文章,有些文件一開始是沒有的,不用擔心影響操作流程。
pps:本文內容來自尚硅谷

1、創建一個文件夾,並將壓縮包上傳至該目錄,並創建一個演示文件c.txt(文件沒有作用,僅用於演示COPY命令需要)

形成這樣的目錄結構:
在這裏插入圖片描述

2、在/linchong/mydocker/tomcat9下編寫Dockerfile文件

使用vim Dockerfile命令打開,粘貼下面文件內容,使用:wq保存退出

FROM centos
MAINTAINER linchong<[email protected]>
#把宿主機上下文的c.txt拷貝到容器/usr/local下
COPY c.txt /usr/local/cincontainer.txt
#把jdk和tomcat添加到容器中
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.19.tar.gz /usr/local
#安裝vim編輯器
RUN yum -y install vim
#設置登錄之後的落腳點
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk和tomcat環境變量
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.19
ENV CATALINE_BASE /usr/local/apache-tomcat-9.0.19
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器運行時監聽的端口
EXPOSE 8080
#啓動時運行tomcat
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.19/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-9.0.19/bin/startup.sh","run"]
CMD /usr/local/apache-tomcat-9.0.19/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.19/bin/logs/catalina.out

3、build鏡像

完整寫法:

docker build -f /linchong/mydocker/tomcat9/Dockerfile  -t lctomcat9 .

也可以省略爲:

docker build -t lctomcat9 .

構建成功後可通過 docker images 命令查看到該鏡像
在這裏插入圖片描述

4、運行鏡像

運行指令:

docker run -d -p 9080:8080 -v /linchong/mydocker/tomcat9/test:/usr/local/apache-tomcat-9.0.19/webapps/test -v /linchong/mydocker/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.19/logs --privileged=true lctomcat9

指令參數解釋:
-d 表示後臺運行容器
-p 指定端口號。9080是主機對外暴露的端口號,8080是容器的端口號
-v 添加容器的鏡像卷,使得主機的文件和容器中的文件能夠共享
--privileged=true 防止沒有寫的權限
lctomcat9 這個是自定義的鏡像名稱

可以看到由該鏡像生成的容器爲:
在這裏插入圖片描述

5、測試

注意:記得打開防火牆的9080端口,如果是雲主機要添加安全組規則9080
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章