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如何制作自己镜像并上传dockerhub)
- docker运行镜像端口(docker镜像访问本地elasticsearch端口操作)
- centosdocker镜像安装mysql(linux下利用Docker安装mysql的步骤)
- docker root权限(docker 免root权限登陆的解决方案)
- docker ip地址分配(docker添加网桥并设置ip地址范围操作)
- 怎么用docker中的mysql连接数据库(解决Docker之mysql容器数据库更改不生效的问题)
- dubbo和项目搭建(使用docker部署dubbo项目的方法步骤)
- springcloud部署docker(Spring Cloud中使用jib进行docker部署的步骤详解)
- docker 搭建gitlab(使用Docker搭建私有GitLab的两种方案)
- linux hadoop client 连接hbase(使用docker部署hbase的方法)
- docker部署redis集群查看版本(docker下的 redis 之持久化存储详解)
- docker镜像查看分层(Docker 镜像优化从1.16GB到22.4MB)
- docker 清除none镜像(删除docker images中为none的镜像操作)
- docker 容器移植(Docker构建kubectl镜像的实现步骤)
- docker安装与使用教程(5分钟安装docker详细步骤)
- docker的解剖(再见 Docker如何5分钟转型 containerd)
- 菲律宾游学(菲律宾游学中介机构)
- 菲律宾美食(菲律宾美食排行榜前十名)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
热门推荐
- 网站部署到云服务可以访问吗(使用云服务器建站网站崩溃怎么办?)
- linux如何查看apache日志(限制 Apache日志文件大小的方法)
- jQuery实现tab切换
- python读取txt文件每一行数据(python读取txt文件并取其某一列数据的示例)
- php递归ajax的交互模型(PHP使用反向Ajax技术实现在线客服系统详解)
- 怎么用css设计边框(单元素利用css实现多重边框效果示例代码)
- sftp和vsftp有什么区别(浅谈 FTP、FTPS 与 SFTP的区别)
- mysql数据库基础练习(最全50个Mysql数据库查询练习题)
- vue element 表格上拉加载数据(Vue组件库ElementUI实现表格加载树形数据教程)
- dedecms联动使用教程(dedecms联动类别的图文使用方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9