您的位置:首页 > 运维架构 > Docker

Docker实战:使用Dockerfile创建带tomcat服务并支持ssh的Centos Docker镜像

2017-10-12 10:03 1166 查看
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访问测试

http://127.0.0.1:8002

在其它机器上通过宿主机的IP访问Tomcat

http://192.168.121.129:8002/

(192.168.121.129是VirtualBox中Centos虚拟机的ip,虚拟机使用桥接模式,IP使用ifconfig列出的ens33)



9、ssh测试

ssh admin@localhost -p 2225

[root@bogon tomcat8_jdk8]# ssh admin@localhost -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.

admin@localhost's password:

[admin@6bdeda39f206 ~]$

ssh测试成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Docker