如果在docker中部署tomcat,並且部署java應用程式

來源:互聯網
上載者:User

如果在docker中部署tomcat,並且部署java應用程式

1、先說如何在docker中部署tomcat

第一步:root使用者登入在系統根目錄下建立檔案夾tomcat7,命令如:mkdir tomcat7,並且切換到該目錄下:cd tomcat7;

第二步:建立Dockerfile,命令如:touch Dockerfile;

第三步:編寫Dockerfile,命令如:vim Dockerfile,完成以下命令編寫:

FROM ubuntu:14.04
MAINTAINER zhaichong <344616313@qq.com>
ENV REFRESHED_AT 2015-7-28

RUN apt-get -yqq update
RUN apt-get -yqq install tomcat7 default-jdk

ENV CATALINA_HOME /usr/share/tomcat7
ENV CATALINA_BASE /var/lib/tomcat7
ENV CATALINA_PID /var/run/tomcat7.pid
ENV CATALINA_SH /usr/share/tomcat7/bin/catalina.sh
ENV CATALINA_TMPDIR /tmp/tomcat7-tomcat7-tmp

RUN mkdir -p $CATALINA_TMPDIR

VOLUME ["/var/lib/tomcat7/webapps/"]

EXPOSE 8080 9000

ENTRYPOINT ["/usr/share/tomcat7/bin/catalina.sh", "run" ]

說明:這裡的EXPOSE要把程式中需要使用到的連接埠都要暴露出去。根據環境變數CATALINA_BASE可以知道VOLUME指定的目錄就是tomcat部署war包的目錄。

第四步:產生鏡像,命令如:docker build -t test/test_app . (注意這裡有個英文的句號);

第五步:運行鏡像產生容器,命令如:docker run --name test_app -d -p 8080:8080 -p 9000:9000 鏡像id,如果不知道鏡像id是多少就使用命令:docker images查看下,注意這裡把EXPOSE出來的連接埠和宿主主機的連接埠綁定起來了,以後就可以使用宿主主機的IP地址和這個連接埠來訪問docker容器中的tomcat以及其中的應用程式了。

第六步:測試:在瀏覽器地址欄敲:http://宿主主機ip:8080/,好了成功了。

可以使用命令:docker port 容器id 8080,這個命令查看容器的8080連接埠和宿主主機連接埠之間的映射關係,而已看出來現在容器的8080連接埠映射的是宿主主機的8080連接埠。

2、再說如何部署我們的應用程式到docker容器的tomcat裡?

大家知道tomcat在容器中,如果要像在宿主主機上那樣部署tomcat應用程式肯定是不行的。那麼採用什麼辦法呢?

第一步:上一個問題中我們已經知道war包是部署在容器的位置是:/var/lib/tomcat7/webapps/,那麼這個位置到底在什麼地方?使用命令:docker inspect -f "{{.Volumes}}" 容器id,如果不知道容器id,則可以通過:docker ps的方式查看到所有啟動並執行容器,也可以通過docker ps -a的方式查看所有容器,包括啟動並執行和不啟動並執行。

會得出以下的結果:

map[/var/lib/tomcat7/webapps:/var/lib/docker/vfs/dir/28d6dd0455d92f0160288a56f838d8aeeff402a843bd57d3b21fcd80eac7df02],在這個map的中括弧裡,冒號前邊的是容器中的目錄,冒號後邊的對應的宿主主機中的目錄,所以我們只需要把我們的war包拷貝到這個地方然後重啟tomcat即可。

這裡要注意,由於我們上邊寫的Dockerfile中預設容器啟動時是會啟動tomcat的,所以這裡只需要重啟容器就能讓tomcat把我們的容器載入上,命令如:

docker restart 容器id

3、如果要看成tomcat的日誌呢?比如查看啟動時的日誌,則可以使用命令:

docker logs 容器id,如果要持續觀察日誌,則是:docker logs -f 容器id

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.