docker容器启动自动执行命令(docker run 运行容器自动结束的解决)
类别:服务器 浏览量:918
时间:2022-01-17 01:52:25 docker容器启动自动执行命令
docker run 运行容器自动结束的解决今天遇到了用Dockerfile创建镜像,镜像运行后容器自动结束问题.
启动命令:
docker run -d -p 8080:8080 -v /usr/local/tomcat7.0/logs:/usr/local/tomcat7.0/logs --name tomcatweb tomcat:7.0
运行以后用docker ps 发现docker 容器已经结束了
查找资料后发现 这个问题并不复杂 原因是应为:Docker容器后台运行,就必须有一个前台进程.
解决办法:
1.将运行进程发放入前台启动 如:nginx nginx -g "daemon off;" tomcat ./catalina.sh run
2.使用 tail , top 这种可以前台运行的程序,特别推荐 tail ,输出你的log文件.
在Dockerfile中加上ENTRYPOINT /opt/tomcat7.0/bin/startup.sh && tail -F /opt/tomcat7.0/logs/catalina.out
补充知识:docker pull 拉取的tomcat 没有生成日志,自己就手写了一个tocmat dockerfile文件,实测有日志生成
一、dockfile 文件以及解释如下
FROM openjdk:8-jre MAINTAINER zyj ENV JAVA_HOME /docker-java-home ENV CATALINA_HOME /opt/tomcat ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/scripts #时区 RUN echo "Asia/Shanghai" > /etc/timezone RUN mv /etc/localtime /etc/localtime_bak RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #TOMCAT ENV TOMCAT_MAJOR 8 ENV TOMCAT_VERSION 8.5.35 RUN wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz && \ tar -zxvf apache-tomcat-8.5.41.tar.gz && \ rm apache-tomcat*.tar.gz && \ mv apache-tomcat* ${CATALINA_HOME} RUN chmod +x ${CATALINA_HOME}/bin/*sh RUN chmod 777 ${CATALINA_HOME}/logs/ RUN chmod 777 ${CATALINA_HOME}/webapps/ #设置用户名密码 admin ADD tomcat-users.xml /opt/tomcat/conf/ #远程访问 ADD context.xml /opt/tomcat/webapps/manager/META-INF/ ENV LANG zh_CN.UTF-8 #开放端口 EXPOSE 8080 # Launch Tomcat WORKDIR /opt/tomcat/bin CMD ["catalina.sh","run"]
注意:该docker 需要引用外部文件
详见 github
二、dockerfile 编译命令
docker build -f dockerfile -t zyj/tomcat .
三、运行命令
docker run -d -p 8080:8080 --name tomcat8 -v /opt/docker-tomcat/logs/:/opt/tomcat/logs/ -v /opt/docker-tomcat/webapps/:/opt/tomcat/webapps/ -v /opt/docker-tomcat/context.xml:/opt/tomcat/webapps/manager/META-INF/context.xml -v /opt/docker-tomcat/tomcat-users.xml:/opt/tomcat/conf/tomcat-users.xml --privileged=true zyj/tomcat
以上这篇docker run 运行容器自动结束的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
您可能感兴趣
- docker的解剖(再见 Docker如何5分钟转型 containerd)
- rocketmq安装linux(docker安装rocketMQ教程最详细)
- docker容器如何更改tomcat端口(Docker方式启动tomcat访问首页出现404错误)
- docker镜像无法删除 Error:No such image:xxxxxx解决(docker镜像无法删除 Error:No such image:xxxxxx解决)
- docker查看某个容器状态(docker 移除掉运行不正常的container操作)
- windows 10家庭版上安装docker(win10家庭版安装Docker的方法步骤)
- springboot怎么用docker(使用docker部署spring boot并接入skywalking的方法)
- docker显示出错应用图标怎么处理(docker 命令报异常permission denied的解决方案)
- docker离线安装步骤(Windows下Docker安装各种软件的详细过程)
- dockerswarm 均衡策略(以示例讲解Clickhouse Docker集群部署以及配置)
- 使用docker在linux环境中部署springboot包的教程(使用docker在linux环境中部署springboot包的教程)
- docker10个小技巧(docker比赛提交常用命令小结)
- docker如何搭建gitlab(docker+gitlab+gitlab-runner部署详解)
- docker load镜像报错(Docker load之后镜像名字为none问题解决方法)
- 修改docker镜像的环境变量(解决docker加载新的镜像后repository和tag名称都为none的问题)
- docker容器启动自动执行命令(docker run 运行容器自动结束的解决)
- 2主力后腰缺阵 泰山队奇兵有望获重用,赛季0出场,迎来中超首秀(泰山队奇兵有望获重用)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
- 《红 雄安》系列广播剧第一集 水上奇兵雁翎队(雄安系列广播剧第一集)
- 小说 小伙穿越成刘备,用现代知识指挥作战,众谋士都看呆了(小伙穿越成刘备)
- 解析葡萄牙6-1瑞士 进攻多点开花,贡萨洛-拉莫斯一战成名(解析葡萄牙6-1瑞士)
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
热门推荐
- vue弹窗模板(Vue登录页面的动态粒子背景插件实现)
- mysql字符集怎么看(mysql字符集相关总结)
- vue基础语法对象(浅析从面向对象思维理解Vue组件)
- react源码教程(详解React 代码共享最佳实践方式)
- jquery解析xml
- html5导航栏怎么设计(html5 横向滑动导航栏的方法示例)
- 护卫神主机大师使用教程(护卫神主机大师软件窗口显示不全的解决办法)
- mysql8.0.16安装步骤图解(mysql 8.0.22 安装配置图文教程)
- linux目录操作功能(Linux 目录结构详细介绍)
- sqlserver数字格式化五位小数(详细分析sqlserver中的小数类型float和decimal)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9