Hi, 准备给 tomcat 的容器增加一个 volume 来持久化配置
-v /root/cat9/conf/:/usr/local/tomcat/conf/
无法正常生成容器
换 docker-compose.yml
version: '3.8'
# docker compose 版本和 docker 对应
services:
arcesb:
image: tomcat
volumes:
- /root/cat9/catconf/:/usr/local/tomcat/conf
ports:
- "10010:8080"
也是无法运行容器。 非 java 开发者,请问有解决方案吗? 提前感谢
是 tomcat 的原因吗?是运行前,此文件件还没生成?
1
lcdtyph 2021-03-01 18:45:31 +08:00 via iPhone
什么叫“无法正常生成容器”?
是生成了但是启动就退出,还是生成了启动了但是 tomcat 运行不正常,还是 docker 指令就报错了 如果报错了,报的是什么错? 还有这个 compose 文件的缩进是不是不太对 |
2
pobing123 OP @lcdtyph 感谢指正。
确实报错情况没有描述清楚。 ~~~bash docker run -d -v /root/cat9/conf/:/usr/local/tomcat/conf/ tomcat ~~~ 比如上述命令,可以生成容器,马上就退出。但是状态是 Exited (1) 6 seconds ago 使用 ~~~ docker run c307f17c5c00 ~~~ 也是无法运行。 compose 文件在运行前有校验过,可能拷贝格式有变化。 当然,compose 里的命令的和 docker run 中也相同,给一个 volume 而已。 |
3
Transbill 2021-03-02 08:55:57 +08:00 via Android 1
docker logs 看下日志吧
|
4
pobing123 OP @Transbill 感谢提供思路
~~~bash WARNING: Unable to load server configuration from [/usr/local/tomcat/conf/server.xml] java.io.FileNotFoundException: /usr/local/tomcat/conf/server.xml (No such file or directory) ~~~ 应该是创建容器是,宿主机的 volume 是空的,导致容器内配置错误,启动不起来。 所以,请问大家,容器里 tomcat 的配置相关设置如何在容器运行之时,就 volume 到宿主机了? 目前采用的方法,是先不加 volume 的运行,然后 docker cp 容器内的 tomcat 文件到宿主机。 然后关闭,再重新加上 volume 运行一遍。 明显这样做不优雅,有其他的办法,或者其他命令吗?刚学 docker 不久,命令不是很溜。 再次感谢楼上两位。 |