Docker容器-构建Tomcat业务镜像

接着上一篇文章来构建Tomcat业务镜像,上篇已经把tomcat基础镜像已经完成了。这次基于tomcat基础镜像构建实际业务镜像。

退到tomcat目录下,新建两个业务用的目录文件

[[email protected] /data/dockerfile/web/tomcat/tomcat-base]#cd ..
[[email protected] /data/dockerfile/web/tomcat]#mkdir tomcat-app1
[[email protected] /data/dockerfile/web/tomcat]#mkdir tomcat-app2

进入Tomcat-app1目录下创建Dockerfile文件

[[email protected] /data/dockerfile/web/tomcat]#cd tomcat-app1
[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#vim Dockerfile
FROM 172.20.7.50/baseimages/centos-tomcat:8.5.33
LABEL maintainer "mr.luo <[email protected]>"

RUN mkdir -p /data/tomcat/webapps/myapp && useradd tomcat
ADD index.html  /data/tomcat/webapps/myapp
ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
COPY server.xml /apps/tomcat/conf/server.xml
RUN chown -R tomcat.tomcat /apps /data/tomcat/webapps

EXPOSE 8080

CMD ["/apps/tomcat/bin/run_tomcat.sh"]

创建测试文件

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#vim index.html
<h1>tomcat testapp1</h1>

拷贝server.xml文件到当前目录下。

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#cp /usr/local/apache-tomcat-8.5.33/conf/server.xml ./

编辑server.xml文件修改host的路径

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#vim server.xml
<Host name="localhost"  appBase="/data/tomcat/webapps" unpackWARs="true" autoDeploy="true">

创建tomcat启动脚本、并给脚本添加执行权限

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#vim run_tomcat.sh
#!/bin/bash
echo "1.1.1.1 abc.test.com" >> /etc/hosts
echo "nameserver 223.5.5.5" > /etc/resolv.conf

su - tomcat -c "/apps/tomcat/bin/catalina.sh start"
su - tomcat -c "tail -f /etc/hosts"

# 给脚本添加执行权限
[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#chmod +x run_tomcat.sh

创建docker build 脚本

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#vim build-command.sh
#!/bin/bash
# Dockerfile build shell
docker build -t 172.20.7.50/baseimages/centos-tomcat-web:app1  .

开始制作镜像

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#bash build-command.sh
Sending build context to Docker daemon  13.31kB
Step 1/9 : FROM 172.20.7.50/baseimages/centos-tomcat:8.5.33
---> 872c70dd2181
Step 2/9 : LABEL maintainer "mr.luo <[email protected]>"
---> Using cache
---> e97895b822f7
Step 3/9 : RUN mkdir -p /data/tomcat/webapps/myapp && useradd tomcat
---> Using cache
---> 72bb5e03ae16
Step 4/9 : ADD index.html  /data/tomcat/webapps/myapp
---> 1f7213ebca35
Step 5/9 : ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
---> 810821a8e3ec
Step 6/9 : COPY server.xml /apps/tomcat/conf/server.xml
---> c0e804cc499d
Step 7/9 : RUN chown -R tomcat.tomcat /apps /data/tomcat/webapps
---> Running in a4a8923b3d14
Removing intermediate container a4a8923b3d14
---> ef1bc1eeba9c
Step 8/9 : EXPOSE 8080
---> Running in f0932e1e1990
Removing intermediate container f0932e1e1990
---> bc4e67b65e5e
Step 9/9 : CMD ["/apps/tomcat/bin/run_tomcat.sh"]
---> Running in cba94e6d84e1
Removing intermediate container cba94e6d84e1
---> 3714c600c51e
Successfully built 3714c600c51e
Successfully tagged 172.20.7.50/baseimages/centos-tomcat-web:app1

启动刚制作好的镜像,测试tomcat是否制作成功

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#docker run --name tom1 -it -d -p 8801:8080 172.20.7.50/baseimages/centotomcat-web:app1
6b77dd85d8a74b7475bd3340e501d3bcd0019ffdad2ea0505ca371f52c3d2ae6

查看是否在后台正常运行

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]#docker ps
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS              PORTS                    NAMES
6b77dd85d8a7        172.20.7.50/baseimages/centos-tomcat-web:app1   "/apps/tomcat/bin/ru…"   6 seconds ago       Up 5 seconds        0.0.0.0:8801->8080/tcp   tom1

用物理机的浏览器测试

制作第二个就非常简单了只需要在第一个上面改下名称即可

先拷贝tomcat-app1下所有文件到tomcat-app2下即可

[[email protected] /data/dockerfile/web/tomcat/tomcat-app1]# cd ..
[[email protected] /data/dockerfile/web/tomcat]#cp -rf tomcat-app1/* tomcat-app2/

修改index.html标识为tomcat testapp2即可

[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#vim index.html
<h1>tomcat testapp2</h1>

修改docker build脚本centos-tomcat-web:app1改成centos-tomcat-web:app2即可,表示这是app2的镜像

[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#vim build-command.sh
#!/bin/bash
# Dockerfile build shell
docker build -t 172.20.7.50/baseimages/centos-tomcat-web:app2 .

查看所有文件,上述除了build-command.sh、index.html需要修改其它不用动保持原样

[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#ll
total 24
-rw-r--r-- 1 root root   77 Nov 23 20:56 build-command.sh
-rw-r--r-- 1 root root  398 Nov 23 20:15 Dockerfile
-rw-r--r-- 1 root root   25 Nov 23 20:15 index.html
-rwxr-xr-x 1 root root  205 Nov 23 20:15 run_tomcat.sh
-rw------- 1 root root 7524 Nov 23 20:15 server.xml

开始制作第二个镜像文件

[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#bash build-command.sh
Sending build context to Docker daemon  13.31kB
Step 1/9 : FROM 172.20.7.50/baseimages/centos-tomcat:8.5.33
 ---> 872c70dd2181
Step 2/9 : LABEL maintainer "mr.luo <[email protected]>"
 ---> Using cache
 ---> e97895b822f7
Step 3/9 : RUN mkdir -p /data/tomcat/webapps/myapp && useradd tomcat
 ---> Using cache
 ---> 72bb5e03ae16
Step 4/9 : ADD index.html  /data/tomcat/webapps/myapp
 ---> 5fb4cdb0e0ca
Step 5/9 : ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
 ---> ca7037e43dd6
Step 6/9 : COPY server.xml /apps/tomcat/conf/server.xml
 ---> 944ac27defb1
Step 7/9 : RUN chown -R tomcat.tomcat /apps /data/tomcat/webapps
 ---> Running in ec169b000f74
Removing intermediate container ec169b000f74
 ---> 168b359f2e83
Step 8/9 : EXPOSE 8080
 ---> Running in 86726c38a44a
Removing intermediate container 86726c38a44a
 ---> d4f8cf67c70c
Step 9/9 : CMD ["/apps/tomcat/bin/run_tomcat.sh"]
 ---> Running in b323b8b073ca
Removing intermediate container b323b8b073ca
 ---> 612035ab8d3e
Successfully built 612035ab8d3e
Successfully tagged 172.20.7.50/baseimages/centos-tomcat-web:app2

查看所有镜像文件

[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#docker images
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
172.20.7.50/baseimages/centos-tomcat-web   app2                612035ab8d3e        10 seconds ago      787MB
172.20.7.50/baseimages/centos-tomcat-web   app1                3714c600c51e        37 minutes ago      787MB
172.20.7.50/baseimages/centos-tomcat       8.5.35              872c70dd2181        2 hours ago         773MB
172.20.7.50/baseimages/centos7.5-jdk       8.191               19e9d5aa96b6        2 hours ago         759MB
172.20.7.50/baseimages/centos-base         7.5.1804            1f6c2c9e089e        2 hours ago         363MB
centos                                     7.5.1804            76d6bc25b8a5        6 weeks ago         200MB

启动容器、并查看当前运行的容器列表

[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#docker run --name tom2 -d -p 8802:8080 172.20.7.50/baseimages/centos-toat-web:app2
e9f08fce2923fc9dd49edf12472d2ef98994126e920168da80c8694ef4a8f0bc
[[email protected] /data/dockerfile/web/tomcat/tomcat-app2]#docker ps
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS              PORTS                    NAMES
e9f08fce2923        172.20.7.50/baseimages/centos-tomcat-web:app2   "/apps/tomcat/bin/ru…"   6 seconds ago       Up 6 seconds        0.0.0.0:8802->8080/tcp   tom2
6b77dd85d8a7        172.20.7.50/baseimages/centos-tomcat-web:app1   "/apps/tomcat/bin/ru…"   14 minutes ago      Up 14 minutes       0.0.0.0:8801->8080/tcp   tom1

用物理机的浏览器打开访问tom2是否正常工作

有什么不足的地方还望各位大表哥在评论区指出来!!!

原文地址:http://blog.51cto.com/dklwj/2321338

时间: 2024-10-09 17:13:13

Docker容器-构建Tomcat业务镜像的相关文章

Docker容器部署tomcat出现中文乱码

docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [[email protected] ~]# docker exec -it 41de9a0b6045 locale LANG= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="

docker容器跑tomcat遇到的坑

使用docker容器跑tomcat,由于同一个宿主机上跑了多个容器,再加上宿主机本身跑了很多进程,导致系统总的进程数达到了8000+,而容器中tomcat的启动脚本中会调用自带的setenv.sh,在setenv.sh中有这么一句ulimit -u 8192,由于系统进程数已经达到了8192,因此在启动tomcat时会报错: tomcat/bin/catalina.sh: fork: retry: No child processestomcat/bin/catalina.sh: fork: r

使用maven插件自动部署web应用至Docker容器的tomcat

配置maven 在pom.xml加入 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 <plugins>     <plugin>         <groupId>org.apache.tomcat.maven</groupId>         <artifactId>tomcat7-maven-plugin</artifactId>         <version>2.2</version&g

docker——容器安装tomcat

写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7u79-linux-x64.tar.gz 2.apache-tomcat-8.0.36.tar.gz 下载centos镜像:(下载centos这个过程极其漫长) 1 # 启动docker服务 2 service docker start 3 4 # 检索centos镜像 5 docker searc

Docker容器构建过程的安全性分析

DevOps概念的流行跟近些年微服务架构的兴起有很大关系,DevOps是Dev(Development)和Ops(Operations)的结合,Dev负责开发,Ops负责部署上线,Docker出现之前,公司需要搭建一个数据库环境,有了Docker之后,只需在一些开源的基础镜像上构建出公司自己的镜像即可. 因此目前大多数DevOps设置都在CI管道中的某处设置了Docker,这就意味着你所看到的任何构建环境都将使用Docker等容器解决方案.由于这些构建环境需要接受不可信的用户提供的代码并进行执行

docker 容器 centos + tomcat + jdk

环境: 阿里云ecs服务器 步骤: 1.安装docker 2.获取centos镜像 3.下载tomcat 和 jdk 安装包 4.配置 1.安装docker https://www.cnblogs.com/shijunjie/p/10436293.html 2.获取centos 镜像 1.在docker官方镜像源搜索centos镜像,选择合适的版本下载镜像 https://hub.docker.com/search?q=&type=image&operating_system= 2.举例:

docker(三) 构建自己的镜像

下面以一个例子来演示构建镜像的过程. #在/tmp目录下演示 cd tmp mkdir build-redis-image 1.创建Dockerfile文件 vim Dockerfile 并写入如下内容: # 构建Redis镜像:在Centos7.4镜像中安装redis后打包成自己的镜像. #基于Centos7.4构建 FROM centos:7.4 #安装依赖 RUN yum -y install tar cpp binutils glibc glibc-kernheaders glibc-c

如果在docker中部署tomcat,并且部署java应用程序

1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创建Dockerfile,命令如:touch Dockerfile: 第三步:编写Dockerfile,命令如:vim Dockerfile,完成以下命令编写: FROM ubuntu:14.04 MAINTAINER zhaichong <[email protected]> ENV REFRES

docker容器与容器云 读书笔记一 第一章

第一章:从容器到容器云 1.1    云计算平台经典云计算架构包括了IaaS(Infrastructure as a Service,基础设施即服务).PaaS(Platform as a Service,平台即服务).SaaS(Software as a Service,软件即服务)三层服务 1.2    容器,新的革命 Docker是什么? 基于官方的定义,Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建.发布和运行分布