服務器環境建好以后,如果要擴展,只需要執行(詳細命令到下文中找)
docker run .....
發完版本需要重啟服務,執行(詳細命令到下文中找)
docker restart [容器的ID]
將文件傳到 tomcat 下,可參考 Docker cp 將宿主機上的文件復制到容器中
准備文件
apache-tomcat-9.0.31.tar.gz
jdk-8u191-linux-x64.tar.gz
CentOS上安裝Docker。
1.檢查內核版本,返回的值大於3.10即可。、
$ uname -r
安裝 Docker
yum -y install docker
將tomcat 、jdk 傳到 /usr/local/docker目錄中
在java、jdk同級目錄下,創建 Dockerfile 文件,文件名不能錯,否則后面 build 會檢測不到
[root@localhost ~]# cd /usr/local/docker/
[root@localhost docker]# touch Dockerfile
Dockerfile 文件內容如下
FROM centos MAINTAINER ChenJun #把java與tomcat添加到容器中 ADD ./jdk-8u191-linux-x64.tar.gz /usr/local/ ADD ./apache-tomcat-9.0.31.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.31 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.31 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器運行時監聽的端口 EXPOSE 8080 #啟動時運行tomcat # ENTRYPOINT ["/usr/local/apache-tomcat-9.0.31/bin/startup.sh" ] # CMD ["/usr/local/apache-tomcat-9.0.31/bin/catalina.sh","run"] CMD /usr/local/apache-tomcat-9.0.31/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.31/bin/logs/catalina.out
構建
#點表示當前目錄 ,也可以直接指定 docker build -t tomcat9 /usr/local/docker
[root@localhost docker]# docker build -t tomcat9 .
如果顯示超時,可以重啟一下 systemctl restart docker
構建成功后,如處圖
啟動docker 加上 webapp、logs目錄映射
[root@localhost web]# docker run -d -p 9091:8080 --name tomcat9091 -v /opt/web/tomcat9091/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9091/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9 [root@localhost web]# docker run -d -p 9092:8080 --name tomcat9092 -v /opt/web/tomcat9092/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9092/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9
創建映射后,會自動的在 宿主機上建立相應的目錄(tomcat webapps下面原有的目錄不會映射過來,不知道為什么,通過 docker exec ... 進去看的時候,容器webapps里面也沒有文件)
測試Tomcat
建個測試的war包
war 包上傳到 9091下面,如果不加 test是不會顯示的。默認帶小貓的頁面,不在本地的 webapps下面
有時候war包放上去,需要重新服務。這時候可以用命令重啟
docker restart [容器的ID]
查看容器中的內容
[root@localhost docker]# docker exec 07de30dd6e3c ls -l