docker in docker
Edited: Saturday 7 June 2025

定义

docker 的运行时容器中,再运行一个 docker engine,从而在这个容器内,又有一套全新的 docker 运行时系统,与容器外完全隔离。

相对的概念:[[docker from docker]]

运行时容器中的 yaml 定义片段

 1{
 2                "Type": "volume",
 3                "Name": "dind-var-lib-docker",
 4                "Source": "/var/lib/docker/volumes/dind-var-lib-docker/_data",
 5                "Destination": "/var/lib/docker",
 6                "Driver": "local",
 7                "Mode": "z",
 8                "RW": true,
 9                "Propagation": ""
10},
11{
12                "Type": "volume",
13                "Name": "minikube-config",
14                "Source": "/var/lib/docker/volumes/minikube-config/_data",
15                "Destination": "/home/vscode/.minikube",
16                "Driver": "local",
17                "Mode": "z",
18                "RW": true,
19                "Propagation": ""
20}

发现的几个问题

  • 为什么 docker rm 和 start 的时候,docker in docker 以前 pull 的镜像还在 ?
    • 因为用了 volume, volume 没有删除的话,重新启动 vscode 会自动 mount 以前同名的 volume, volume 里面有以前的历史 images 数据

Backlinks