docker容器跑tomcat遇到的坑

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

tomcat/bin/catalina.sh: fork: retry: No child processes
tomcat/bin/catalina.sh: fork: retry: No child processes
tomcat/bin/catalina.sh: fork: retry: No child processes
tomcat/bin/catalina.sh: fork: retry: No child processes
tomcat/bin/catalina.sh: fork: Resource temporarily unavailable

导致tomcat无法启动,后来修改setenv.sh,将ulimit -u 8192,改为ulimit -u 58192,tomcat可以正常启动了。

系统max proc配置(ulimit -a查看)在/etc/security/limits.conf中。

系统limit设置修改方法推荐链接:

http://pvbutler.blog.51cto.com/7662323/1558092

http://jingyan.baidu.com/article/1974b289a397d1f4b1f77495.html

http://www.cnblogs.com/mylingc/archive/2013/05/24/3097416.html

时间: 2024-11-08 18:19:53

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容器跑OpenVPN

为节约服务器资源方便服务器迁移,可以将OpenVPN跑在Docker容器中,OpenVPN在容器中有相比其他有些特殊,主要有以下几点: 1.ip包转发问题 2.iptables在容器中的权限问题 3.容器对网卡设备的权限问题 环境: CentOS 7.2 x86_64 Docker-1.13.1 selinux已关闭 1.ip包转发 修改/usr/lib/systemd/system/docker.service文件 ExecStart=/usr/bin/dockerd --ip-forward

使用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容器-构建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/do

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中部署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

Shell脚本控制tomcat的docker容器的创建,删除,启动,关闭

说明: 多个tomcat容器,同时启动和关闭,每个docker容器的网络管理使用pipework控制.此脚本用来管理多个容器的创建,删除,启动和关闭.使用者可自行修改. #!/bin/bash # chkconfig:2345 11 90 # description: Docker $Name BEGIN=1 END=4 Name=api Host="$Name" Mem=2048m Container_web_DIR="/tomcat/webapps" Conta

Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目

Docker容器和本机之间的文件传输. http://blog.csdn.net/leafage_m/article/details/72082011 使用Docker部署Tomcat项目 http://blog.csdn.net/leafage_m/article/details/72081987