求助,Docker挂载问题

在学习Docker过程中发现,使用 docker run -v 主机目录:容器目录 命令,如果挂在的容器目录是配置文件等重要目录会导致容器启动失败。

需求:

docker运行tomcat容器,需要把容器内/usr/local/tomcat/ 目录下的webapps、conf、logs 目录挂载到主机目录下,方便部署项目和查看日志以及修改配置

运行以下命令:

docker run -p 8080:8080 --name tomcat01 \
-v /mydata/tomcat01:/usr/local/tomcat/webapps \
-v /mydata/tomcat01/logs:/usr/local/tomcat/logs \
-v /mydata/tomcat01/conf:/usr/local/tomcat/conf \
-d tomcat:8

 

运行结果是容器启动失败。

 

运行以下命令:

docker run -p 8081:8080 --name tomcat01 \
-v /usr/local/tomcat \
-d tomcat:8

 

不指定路径挂载,启动成功,在Docker目录volumes下,找到了tomcat容器挂载的卷,tomcat的文件确认都在

 

问题:

如果想使用指定路径挂载容器内的重要目录,有什么办法

新手小白,麻烦大家尽量解答详细一些~

加下权限试试

chmod 777 /usr/local/tomcat/webapps 

chmod 777 /usr/local/tomcat/logs 

 chmod 777 /usr/local/tomcat/conf 

命令是没问题的,可能是目录权限的问题,这个还是要看日志才知道问题出在哪儿

宿主主机/usr/local/tomcat/conf刚开始是没有配置文件的吧,你需要先把容器里的tomcat配置文件复制到宿主主机的/usr/local/tomcat/conf目录下,然后再去挂载。