我有几个容器,它们的卷设置如下:
volumes:
- /opt/App/${COMPOSE_PROJECT_NAME}/temp:/usr/local/tomcat/temp
- /opt/App/${COMPOSE_PROJECT_NAME}/logs:/usr/local/tomcat/logs
- /opt/App/${COMPOSE_PROJECT_NAME}/database:/usr/local/tomcat/database
- /opt/App/${COMPOSE_PROJECT_NAME}/backups:/usr/local/tomcat/backups
为了在容器文件系统中找到卷,我想出了一个不太实用的方法,所以我想知道是否有任何方法可以简化它。
docker ps --no-trunc --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" # finding the container id
docker inspect --format '{{json .Mounts}}' <container_id> # finding the container filesystem's ID
updatedb
locate <id_filesystem>
cd /var/lib/docker/overlay2/<id_filesystem>/diff/usr/local/tomcat # diretório do Orion
有没有更简单的方法?
我尝试使用“grep”从docker inspect命令的输出中查找容器的“UpperDir”,但它不起作用,可能是因为它是一个.json文件。
也许我以后会想出一个脚本,但现在我只想简化这个过程。
1条答案
按热度按时间jdgnovmf1#
到目前为止,我发现的最有效的方法是这样的:
因此,基本上使用命令替换,并使用脚本传递容器名称作为从输入读取的标志(矫枉过正?yeah)。
或者只使用inspect检查图像名称/id并转到相应的UpperDir。
对于reference,
docker inspect
可用于显示有关容器的信息,例如卷和网络。所以我用这个来自动化这个过程。我正在试验容器并测试一些修改,因此提出了最初的问题。
我很感激你的回答和关于覆盖文件系统的信息,它们非常有帮助。