如何解决“docker stack deploy”:docker 镜像在哪里?
我创建了一个 docker compose *.yml 文件,其中有许多带有指定图像标签的服务。然后我让 docker 使用 docker stack deploy -c .\my-compose-file.yml --with-registry-auth dev
为我(在我的本地机器上)部署一个堆栈,它能够运行所有服务。当我同时运行 docker events
时,我可以在日志中看到 image pull
消息,因此 docker 会提取丢失的图像。但是当我运行 docker image ls -a
时,这里没有显示提取的图像。
所以我想知道并想知道下载的图像有什么实时周期(然后在我执行 docker stack rm
或不执行时将从我的驱动器中删除),如果没有,我该如何清理这些图像?
解决方法
我假设您已配置多节点群。在这种情况下,docker image ls
仅在您的本地机器上运行,而堆栈中的容器分布在各个节点上。图像被拉到将运行容器的节点上。
要获取容器列表,您需要前往 swarm 的每个成员并发出命令。简单的方法是使用,假设您可以使用身份密钥通过 ssh 访问节点:
docker node ls | cut -c 31-49 | grep -v HOSTNAME | xargs -I"SERVER" sh -c "echo SERVER; ssh SERVER /usr/local/bin/docker image ls -a"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。