Docker - 创建Tomcat镜像并部署war工程

假装没事ソ 提交于 2019-12-07 15:35:53

通过这个案例把之前学的docker知识串一串

1. 先创建一个带有ssh服务的centos镜像,当然也可以直接下tomcat镜像,但是如果公司用的话可能需要指定版本,jdk之类的,还是需要自己做镜像的,这里顺便练下做镜像。

运行一个centos容器,主机没有的话会自动去下载镜像再启动

在容器中输入sshd命令,此时是没有ssh服务

安装sshd服务

启动sshd服务,会报下面错误

执行下面命令

修改配置

把UsePAM设置成no

设置密码

退出容器准备为容器创建镜像,记住此时容器 id 为377.....

docker commit 377 sshd-centos:centos

这个时候我们可以启动容器看是否能够外部访问

docker run -p 10022:22 -d sshd-centos:centos /usr/sbin/sshd -D启动容器并将主机的10022端口映射成容器的22端口

通过主机访问

ssh root@localhost -p 10022

上面我们的ssh服务的centos镜像就完成了。

2.做tomcat镜像,创建一个Tomcat文件夹,从官网上下载jdk的tar文件解压到Tomcat文件夹,创建 Dockerfile

    文件和run.sh文件,下载tomcat压缩文件解压。完成后,目录文件如下:


编辑dockerfile文件,编写下面代码

#继承的镜像
FROM sshd-centos:centos
#作者信息
MAINTAINER chenglei "ischenglei@126.com"

#把当前目录下的jdk文件夹添加到镜像
ADD jdk7 /jdk7

#把当前目录下的tomcat文件夹添加到镜像
ADD tomcat7 /tomcat7

#把当前目录下的run.sh添加到镜像
ADD run.sh /run.sh

#添加环境变量
ENV JAVA_HOME /jdk7
ENV CATALINA_HOME /tomcat7
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

#修改权限
RUN chmod +x /*.sh
RUN chmod +x /tomcat7/bin/*.sh


#暴露8080端口
EXPOSE 8080

#启动时运行tomcat
CMD ["/run.sh"]
编辑run.sh文件

#!/bin/bash
#启动ssh
/usr/sbin/sshd -D &
#启动tomcat
exec ${CATALINA_HOME}/bin/catalina.sh run
生成镜像文件

docker bulid -t tomcat:cl .

通过docker images查看


启动我们的镜像

docker run -ti -p 8888:8080  tomcat:cl 

将主机的端口8888绑定容器端口8080

启动成功后我们通过ip:8888即可访问我们的容器tomcat



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!