编写Dockerfile制作tomcat镜像,生成镜像名为tomcat:v1,并推送到私有仓库。

1.具体要求如下:

  • 基于rockylinux:8基础镜像;
  • 指定作者为openlab;
  • 安装tomcat服务,暴露8080端口;
  • 设置服务自启动。

总结步骤:基于rockylinux:8,安装Java环境,安装Tomcat,配置,暴露端口,设置启动命令,然后构建镜像,打标签,推送到私有仓库。

宿主机:

创建tomcat目录并进入: mkdir tomcat ; cd tomcat

2.下载所需文件(jdk和tomcat)

apache-tomcat-9.0.102.tar.gz 和 jdk-8u261-linux-x64.rpm

3、编写Dockerfile

FROM rockylinux:8
MAINTAINER openlab <openlab@123.com>

复制代码
FROM rockylinux:8
MAINTAINER openlab <openlab@123.com>
COPY  jdk-8u261-linux-x64.rpm /opt/jdk-8u261-linux-x64.rpm
ADD apache-tomcat-9.0.102.tar.gz /usr/local
RUN yum install -y /opt/jdk-8u261-linux-x64.rpm && ln -s /usr/local/apache-tomcat-9.0.102 /usr/local/tomcat
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

4、制作镜像

docker build -t tomcat:v1 .

5、测试镜像

docker run -d --name a1 -p 8080:8080 tomcat:v1

执行后,通过docker ps -a 查看 发现容器未启动

排查方法:
查看日志 docker logs c1
...
library initialization failed - unable to allocate file descriptor table - out of memory
内存溢出,错误原因通常是由于系统资源不足,特别是文件描述符(file descriptor, FD)的数量不足

解决方法:
方法1: 在执行 docker run 命令时添加参数 --ulimit nofile=65535:65535 --ulimit nproc=65535:65535
docker run -d -p 8080:8080 --ulimit nofile=65535:65535 --ulimit nproc=65535:65535 tomcat:v1

方法2: 修改docker服务脚本
vim /usr/lib/systemd/system/docker.service

在`ExecStart`参数值后面追加 `--default-ulimit nofile=65535:65535`,这样就能为创建的容器设置一个较高的文件描述符限制了。

编辑完成后,重新加载systemd的配置,并重启Docker服务:
输入以下命令:
systemctl daemon-reload
systemctl restart docker

然后再进行测试

6.标记镜像为私有仓库格式

docker tag tomcat:v1 192.168.234.15:5050/openlab/tomcat:v1

7.登录到私有仓库并推送镜像

docker login 192.168.234.15:5050

docker push 192.168.234.15:5050/tomcat:v1

推送成功!!!

相关推荐
小羊没烦恼!10 分钟前
jQuery1.5的改进细节
java·服务器·开发语言·前端·c#
北龙云海19 分钟前
AI驱动数据库运维变革:北龙云海智能巡检平台实践与展望
运维·数据库·人工智能
AI职业加油站28 分钟前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展
Lsetea2 小时前
curl报58 unable to set private key file:客户端证书与私钥加载排查
运维·https·ssl证书·openssl·curl
天远Date Lab2 小时前
零信任架构实战:基于天远学籍核验三要素构建自动化竞赛资格审查网关
运维·人工智能·架构·自动化
KING-WU5122 小时前
Linux 工具之Make 与 Makefile
java·linux·服务器
阿乔外贸日记2 小时前
全球电子产业高度集中:中、韩、日和中国台湾地区占全球数字硬件产能八成
大数据·服务器·人工智能·物联网·云计算
Lsetea2 小时前
OpenSSL报certificate is not yet valid:error 9与notBefore时间排查
linux·运维·https·ssl证书·openssl
魔法阵维护师2 小时前
Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理
linux·运维·服务器
飞飞传输3 小时前
业务系统文件安全检测怎么做?生物医药企业选型与建设指南
大数据·运维·安全