1. 程式人生 > >使用Dockerfile創建帶tomcat的Centos Docker鏡像

使用Dockerfile創建帶tomcat的Centos Docker鏡像

利用dockerfile來搭tomcat

(1)準備工作:
創建tomcat7.0_jdk1.6文件夾,從www.oracle.com上下載sun_jdk 1.6壓縮包,解壓為jdk目錄。
創建Dockerfile和run.sh文件
[root@docker1 ~]# mkdir tomcat7.0_jdk1.6
[root@docker1 ~]# cd tomcat7.0_jdk1.6/
[root@docker1 tomcat7.0_jdk1.6]# touch Dockerfile run.sh
[root@docker1 tomcat7.0_jdk1.6]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.zip
--2017-11-27 22:31:47-- https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.zip
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.6.178, 2402:f000:1:416:101:6:6:177
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.6.178|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9588812 (9.1M) [application/zip]
Saving to: ‘apache-tomcat-7.0.82.zip’

100%[================================================================================================================>] 9,588,812 3.38MB/s in 2.7s

2017-11-27 22:31:50 (3.38 MB/s) - ‘apache-tomcat-7.0.82.zip’ saved [9588812/9588812]
解壓後,tomcat7.0_jdk1.6目錄底下應如下所示(多余的壓縮包已經被刪除):

[root@docker1 tomcat7.0_jdk1.6]# rz -y 上傳jdk-6u45-linux-x64.bin包
[root@docker1 tomcat7.0_jdk1.6]# chmod 755 jdk-6u45-linux-x64.bin
[root@docker1 tomcat7.0_jdk1.6]# ./jdk-6u45-linux-x64.bin
[root@docker1 tomcat7.0_jdk1.6]# ls
apache-tomcat-7.0.82 apache-tomcat-7.0.82.zip Dockerfile jdk1.6.0_45 jdk-6u45-linux-x64.bin jdk-6u45-linux-x64.zip run.sh
[root@docker1 tomcat7.0_jdk1.6]# rm -f jdk-6u45-linux-x64.bin jdk-6u45-linux-x64.zip apache-tomcat-7.0.82.zip
[root@docker1 tomcat7.0_jdk1.6]# ls
apache-tomcat-7.0.82 Dockerfile jdk1.6.0_45 run.sh

(2)編寫Dockerfile文件

[root@docker1 tomcat7.0_jdk1.6]# cat Dockerfile

#設置繼承來自鏡像

FROM docker.io/centos:latest


#下面是一些創建這的基本信息

MAINTAINER waitfish from dockerpool.com


#設置環境變量,所以操作都是非交互式的

ENV DEBIAN_FRONTEND noninteractive


RUN echo "Asia/Shanghai" > /etc/timezone

#註意這裏要更改系統的時區設置,因為在Web應用中經常會用到時區這個系統變量,默認的centos會讓你的應用程序發生不可思議的效果


#設置tomcat對的環境變量,若讀者有其他的環境變量需要設置,也可以在這裏添加:

ENV CATALINA_HOME /tomcat

ENV JAVA_HOME /jdk


#復制tomcat和jdk文件到鏡像中

ADD apache-tomcat-7.0.82 /tomcat

ADD jdk1.6.0_45 /jdk


#ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh

ADD run.sh /run.sh

RUN chmod +x /*.sh

RUN chmod +x /tomcat/bin/*.sh


EXPOSE 8080

CMD ["/run.sh"]


(3)建立tomcat7.0:jdk1.6鏡像

[root@docker1 tomcat7.0_jdk1.6]# docker build -t tomcat7.0:jdk1.6 .

[root@docker1 tomcat7.0_jdk1.6]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

tomcat7.0 jdk1.6 581265694089 6 seconds ago 439.8 MB

......

(4)啟動一個tomcat容器進行測試

[root@docker1 tomcat7.0_jdk1.6]# docker run -d -P tomcat7.0:jdk1.6

ac6d662434ffb9435740d0f452599e12349903f4387775155f0d7e057eac6a33

(5)查看映射的端口信息:

[root@docker1 tomcat7.0_jdk1.6]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

ac6d662434ff tomcat7.0:jdk1.6 "/run.sh" 21 minutes ago Up 21 minutes 0.0.0.0:32820->8080/tcp thirsty_montalcini

(6)在本地使用瀏覽器登錄Tomcat管理界面,訪問10.0.0.10:32820,如下圖所示:

技術分享圖片



----------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------

tomcat設置密碼登錄

(1)更改Dockerfile配置文件

[root@docker1 tomcat7.0_jdk1.6]# cat Dockerfile

#設置繼承來自鏡像

FROM docker.io/centos:latest


#下面是一些創建這的基本信息

MAINTAINER waitfish from dockerpool.com


#設置環境變量,所以操作都是非交互式的

ENV DEBIAN_FRONTEND noninteractive


RUN echo "Asia/Shanghai" > /etc/timezone #&& \

#dpkg-reconfigure -f noninteractive tzdata

#註意這裏要更改系統的時區設置,因為在Web應用中經常會用到時區這個系統變量,默認的centos會讓你的應用程序發生不可思議的效果


#安裝跟tomcat用戶認證相關的軟件<-------------修改處

RUN yum update

RUN yum install -y wget pwgen ca-certificates && yum clean all


#設置tomcat對的環境變量,若讀者有其他的環境變量需要設置,也可以在這裏添加:

ENV CATALINA_HOME /tomcat

ENV JAVA_HOME /jdk


#復制tomcat和jdk文件到鏡像中

ADD apache-tomcat-7.0.82 /tomcat

ADD jdk1.6.0_45 /jdk


#<------修改處

ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh

ADD run.sh /run.sh

RUN chmod +x /*.sh

RUN chmod +x /tomcat/bin/*.sh


EXPOSE 8080

CMD ["/run.sh"]





*********************************************************************************************

附件:

apache-tomcat-7.0.82 http://down.51cto.com/data/2368971

jdk-6u45-linux-x64.bin http://down.51cto.com/data/2369015



使用Dockerfile創建帶tomcat的Centos Docker鏡像