当容器停止时,容器创建的docker卷会发生什么情况

当容器停止时,容器创建的docker卷会发生什么情况,docker,docker-volume,Docker,Docker Volume,这是我的spring boot应用程序的Dockerfile FROM openjdk:8u151-jdk-alpine VOLUME /tmp ADD target/classes/application.properties /workdir/application.properties ADD target/foo-app-2.0.0.jar /workdir/app.jar WORKDIR /workdir ENV JAVA_OPTS="" EXPOSE 8080 ENTRYPOINT

这是我的spring boot应用程序的Dockerfile

FROM openjdk:8u151-jdk-alpine
VOLUME /tmp
ADD target/classes/application.properties /workdir/application.properties
ADD target/foo-app-2.0.0.jar /workdir/app.jar
WORKDIR /workdir
ENV JAVA_OPTS=""
EXPOSE 8080
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar" ]
它在容器启动时创建一个卷
/tmp
,该卷存储在主机的
/var/lib/docker
文件夹中


当容器停止时,该卷是否已删除,即该卷的主机上的所有内容都已清理?如果没有,如何配置?

否,卷不会自动删除(即使容器被删除),您可以使用
docker volume ls
命令列出它们

这可能会导致主机中存在大量悬空卷(与任何容器都不关联的卷)。要删除它们,可以使用以下命令,例如:

docker volume rm `docker volume ls -q -f dangling=true`

(取自此处)

否,卷不会自动删除(即使容器被删除),您可以使用
docker volume ls
命令列出它们

这可能会导致主机中存在大量悬空卷(与任何容器都不关联的卷)。要删除它们,可以使用以下命令,例如:

docker volume rm `docker volume ls -q -f dangling=true`

(摘自此处)

添加到@white11答案-


否,默认情况下不会自动/删除卷(即使容器 已删除),您可以使用
docker volume ls
命令列出它们

但是,停止容器后,您可以使用
rm-v
删除与其关联的卷:

$docker stop$CONTAINER\u ID和&docker rm-v$CONTAINER\u ID

手册-

用法:docker rm[选项]容器[容器…]

移除一个或多个容器

选项:

-f、 --强制拆除正在运行的容器 (使用SIGKILL)

-l、 --链接删除指定的链接
-v、 --卷删除与卷关联的卷 容器


添加到@white11答案-


否,默认情况下不会自动/删除卷(即使容器 已删除),您可以使用
docker volume ls
命令列出它们

但是,停止容器后,您可以使用
rm-v
删除与其关联的卷:

$docker stop$CONTAINER\u ID和&docker rm-v$CONTAINER\u ID

手册-

用法:docker rm[选项]容器[容器…]

移除一个或多个容器

选项:

-f、 --强制拆除正在运行的容器 (使用SIGKILL)

-l、 --链接删除指定的链接
-v、 --卷删除与卷关联的卷 容器


在这种情况下,如何配置在容器终止时删除卷?我认为没有这样的选项。您必须定期运行命令来删除所谓的悬挂卷。您可以使用此命令,例如:@ares-您可以使用
rm-v
删除容器卷,即
docker stop$CONTAINER\u ID&&docker rm-v$CONTAINER\u ID
在这种情况下,如何配置在容器终止时删除卷?我认为没有这样的选项。您必须定期运行命令来删除所谓的悬挂卷。您可以使用此命令,例如:@ares-您可以使用
rm-v
删除容器卷,即
docker stop$CONTAINER\u ID&&docker rm-v$CONTAINER\u ID