1. 程式人生 > >Docker實戰:使用Dockerfile建立帶tomcat服務並支援ssh的Centos Docker映象

Docker實戰:使用Dockerfile建立帶tomcat服務並支援ssh的Centos Docker映象

1、在root目錄下建立 tomcat8_jdk8 目錄 2、下載jdk8,tomcat8並解壓到 tomcat8_jdk8 目錄下 將jdk8解壓後重命名為jdk,並將裡面的src原始碼相關的檔案刪除,以減少生產映象檔案的大小。 將tomcat8解壓後重命名為tomcat,也可將裡面不需要的檔案刪除。 可用下面的命令處理: rm -rf ./jdk/*src.zip \ ./jdk/lib/missioncontrol \ ./jdk/lib/visualvm \ ./jdk/lib/*javafx* \ ./jdk/jre/lib/plugin.jar \ ./jdk/jre/lib/ext/jfxrt.jar \ ./jdk/jre/bin/javaws \ ./jdk/jre/lib/javaws.jar \ ./jdk/jre/lib/desktop \ ./jdk/jre/plugin \ ./jdk/jre/lib/deploy* \ ./jdk/jre/lib/*javafx* \ ./jdk/jre/lib/*jfx* \ ./jdk/jre/lib/amd64/libdecora_sse.so \ ./jdk/jre/lib/amd64/libprism_*.so \ ./jdk/jre/lib/amd64/libfxplugins.so \ ./jdk/jre/lib/amd64/libglass.so \ ./jdk/jre/lib/amd64/libgstreamer-lite.so \ ./jdk/jre/lib/amd64/libjavafx*.so \ ./jdk/jre/lib/amd64/libjfx*.so 3、在 tomcat8_jdk8 目錄下建立run.sh檔案,內容如下 #!/bin/bash /usr/sbin/sshd & exec ${CATALINA_HOME}/bin/catalina.sh run 4、在 tomcat8_jdk8 目錄下建立Dockerfile檔案,內容如下: #建立tomcat目錄 RUN mkdir -p /java/tomcat #把當前目錄下的tomcat資料夾新增到映象 ADD tomcat /java/tomcat #設定環境變數,所有操作都是非互動式的 #ENV DEBINA_FRONTEND noninteractive #更改系統時區設定 #RUN echo "Asia/Shanghai">/etc/timezone && dpkg-reconfigure -f noninteractive tzdata #新增環境變數 ENV JAVA_HOME /java/jdk ENV CATALINA_HOME /java/tomcat ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin #暴露8080,22埠 EXPOSE 8080 EXPOSE 22 ADD run.sh /java/run.sh RUN chmod 755 /java/run.sh RUN chmod +x /java/tomcat/bin/*.sh #啟動時執行tomcat #CMD ["/java/tomcat/bin/catalina.sh","run"] CMD ["/java/run.sh"] 完成後 tomcat8_jdk8 目錄內容如下所示:
5、編譯生成映象檔案 docker build -t tomcat8_jdk8:centos . 6、檢視生成的映象檔案 docker images 7、使用映象生成容器 docker run -d -p 2225:22 -p 8002:8080 -p 4444:443 tomcat8_jdk8:centos /java/run.sh 說明: 把容器的22埠對映到宿主機的2225埠,把容器的8080埠對映到宿主機的8002埠, 把容器的4444埠對映到宿主機的443埠。 8、Tomcat訪問測試 在其它機器上通過宿主機的IP訪問Tomcat (192.168.121.129是VirtualBox中Centos虛擬機器的ip,虛擬機器使用橋接模式,IP使用ifconfig列出的ens33)

9、ssh測試 ssh [email protected] -p 2225 [[email protected] tomcat8_jdk8]# ssh [email protected] -p 2225 The authenticity of host '[localhost]:2225 ([::1]:2225)' can't be established. ED25519 key fingerprint is SHA256:bpea3b9d0VJwvZeL4MI1jJMs1iF1K+sTVsNtPt4sQU8. ED25519 key fingerprint is MD5:78:9b:a4:df:06:a9:b1:98:2d:33:9c:77:b5:5d:0e:b1. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[localhost]:2225' (ED25519) to the list of known hosts.
[email protected]
's password: [[email protected] ~]$ ssh測試成功