【DockerCE】使用dockerfile构建基于Rocky Linux的Tomcat镜像

本文介绍了如何在CentOS7.9环境下,使用Docker CE 20.10.9构建基于RockyLinux的基础镜像的Tomcat 8.5.72镜像。在构建过程中,遇到alpine镜像导致的问题并提供了解决方案,最终成功运行容器并进行访问测试。文章强调了基础镜像选择的重要性以及构建和运行的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境介绍

操作系统:CentOS 7.9

DockerCE:20.10.9

其他软件

  • apache-tomcat-8.5.72.tar.gz(基于官方版本,对安全和性能做了一系列的优化,并将一个测试war包提前放到webapps目录下)
  • jdk1.8_u301-linux-x64.tar.gz
  • dockerfile

dockerfile完整内容

#dockerfile
FROM rockylinux/rockylinux:latest
MAINTAINER cnskylee

ADD jdk1.8_u301-linux-x64.tar.gz /usr
ADD apache-tomcat-8.5.72.tar.gz /

ENV JAVA_HOME /usr/jdk1.8.0_301
ENV CLASSPATH .:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
ENV PATH $JAVA_HOME/bin:$PATH:$HOME/bin
ENV CATALINA_HOME /apache-tomcat-8.5.72
ENV CATALINA_BASE /apache-tomcat-8.5.72

EXPOSE 18170
EXPOSE 30011

CMD /apache-tomcat-8.5.72/bin/catalina.sh run

备注:这里有一个坑,需要给大家标出来。就是基础镜像不要选择alpine:latest,使用这个基础镜像,构建镜像没问题,但是在运行容器的时候会失败,始终提示/usr/jdk1.8.0_301/bin/java找不到文件。查询了一上午,没解决,下午换成Rocky Linux的docker镜像,一切正常了。

二、构建镜像

# ls -ltr
total 151380
-rwxr-xr-x 1 root root   9485325 Oct 17 22:21 apache-tomcat-8.5.72.tar.gz
-rw-r--r-- 1 root root 145521228 Oct 17 22:32 jdk1.8_u301-linux-x64.tar.gz
-rwxr-xr-x 1 root root       457 Oct 18 02:40 dockerfile

# docker build -t tomcat-rocky:v8.5.72 .
Sending build context to Docker daemon  879.1MB
Step 1/12 : FROM rockylinux/rockylinux:latest
 ---> 333da17614b6
Step 2/12 : MAINTAINER cnskylee from sgcc.com.cn(cnskylee@126.com)
 ---> Running in 5a4ff3053ec9
Removing intermediate container 5a4ff3053ec9
 ---> 475be38fe1c6
Step 3/12 : ADD jdk1.8_u301-linux-x64.tar.gz /usr
 ---> 77e3d28164e5
Step 4/12 : ADD apache-tomcat-8.5.72.tar.gz /
 ---> 0528a91dafd9
Step 5/12 : ENV JAVA_HOME /usr/jdk1.8.0_301
 ---> Running in b7d8399af85d
Removing intermediate container b7d8399af85d
 ---> 4236e293c567
Step 6/12 : ENV CLASSPATH .:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
 ---> Running in 20e049a5b7b5
Removing intermediate container 20e049a5b7b5
 ---> 30cb418a4131
Step 7/12 : ENV PATH $JAVA_HOME/bin:$PATH:$HOME/bin
 ---> Running in 944f6ec16879
Removing intermediate container 944f6ec16879
 ---> 5fb0e8b44787
Step 8/12 : ENV CATALINA_HOME /apache-tomcat-8.5.72
 ---> Running in 11b1ecfbc676
Removing intermediate container 11b1ecfbc676
 ---> 842897ad3e7c
Step 9/12 : ENV CATALINA_BASE /apache-tomcat-8.5.72
 ---> Running in 7e6d6d1b4aa8
Removing intermediate container 7e6d6d1b4aa8
 ---> d01e1ffaddaa
Step 10/12 : EXPOSE 18170
 ---> Running in 482fcb5d6dea
Removing intermediate container 482fcb5d6dea
 ---> d2a95a179a7f
Step 11/12 : EXPOSE 30011
 ---> Running in fcd6238626ca
Removing intermediate container fcd6238626ca
 ---> f699b624b4f7
Step 12/12 : CMD /apache-tomcat-8.5.72/bin/catalina.sh run
 ---> Running in de1355b68c22
Removing intermediate container de1355b68c22
 ---> 081fc550edc2
Successfully built 081fc550edc2
Successfully tagged tomcat-rocky:v8.5.72

# docker images
REPOSITORY              TAG       IMAGE ID       CREATED          SIZE
tomcat-rocky            v8.5.72   081fc550edc2   14 minutes ago   599MB
rockylinux/rockylinux   latest    333da17614b6   3 months ago     227MB

三、运行容器

# docker run -dti -p 30011:30011 -p 18170:18170 tomcat-rocky:v8.5.72 
9a531c847c12cf0fa1712a8a61e83a598be5ac2c00e5343c22708f7c5b13a8d4

# docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS         PORTS                                                                                          NAMES
9a531c847c12   tomcat-rocky:v8.5.72   "/bin/sh -c '/apache…"   6 seconds ago   Up 4 seconds   0.0.0.0:18170->18170/tcp, :::18170->18170/tcp, 0.0.0.0:30011->30011/tcp, :::30011->30011/tcp   eager_ritchie

四、访问测试

1. 集成的用于Prometheus监控的metrics

2. 测试war包

OK,使用dockerfile来构建一个简单的Tomcat镜像,到这里就结束了。

Rocky Linux 9.3镜像可以用于搭建OpenStack云平台,但这是一个相对复杂的过程,涉及到多个步骤和技术组件。以下是简化的步骤概述: 1. **安装基础环境**: - 安装Rocky Linux 9.3服务器作为控制节点,推荐使用支持OpenStack的版本,如CentOS Stream或RHEL。 - 安装必要的工具包,如`epel-release` (额外的EPEL仓库) 和 `python3-pip`。 ```bash sudo yum install epel-release -y sudo yum install python3-pip -y ``` 2. **更新系统**: 确保系统是最新的。 ```bash sudo yum update -y ``` 3. **安装OpenStack组件**: - 使用pip安装OpenStack的基础软件包,例如`openstack-dashboard`, `neutron`, `nova-compute`, 等等。这通常通过`requirements.txt`文件进行自动化安装。 ```bash pip3 install -r /path/to/openstack-requirements.txt ``` 4. **配置网络**: 需要设置网络平面、路由器以及防火墙规则,比如使用Nova Network、Neutron或OVS(Open vSwitch)。 5. **初始化数据库**: 对于Keystone(身份服务),需要创建数据库和用户,并同步配置信息。 6. **部署服务**: 根据OpenStack的部署模式(单机、HA或者全栈),启动并配置各个服务,如Nova(计算)、Cinder(存储)、Swift(对象存储)等。 7. **安全配置**: 设置SSL证书,管理和限制访问权限。 8. **验证安装**: 登录OpenStack Dashboard检查各个服务是否运行正常,可以创建虚拟机进行测试。 **注意事项:** - 这是一个概述,实际操作中还需要参考官方文档(https://docs.openstack.org/)和社区指南。 - OpenStack的部署过程可能会因版本更新而变化,确保使用镜像和指导与当前版本兼容。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值