主机上的Docker容器的文件系统内容
我已经读了很多关于docker如何使用cgroups和命名空间的工作。 如果这是正确的, 主机应该能够看到docker容器使用的所有进程和文件系统树。 但是,我似乎无法弄清楚。
有人可以用docker v1.12.6和一个正在运行的“nginx”容器来显示它吗?
可选:是否可以以同样的方式访问已经退出的容器的文件?
PS,GraphDriver看起来像这样:
"GraphDriver" : { "Name" : "aufs", "Data" : null },
您可以使用docker cp命令从docker复制文件,然后您可以访问它。这也是访问已退出容器中文件的最简单方法。
在Docker守护进程运行的主机上运行时,可以运行(以root身份);
启动一个nginx容器
docker run -d nginx
按层级查看正在运行的所有进程
ps auxf
其中显示了所有进程,包括刚开始的nginx容器;
root 3810 0.9 3.2 387460 67308 ? Ssl 11:31 0:12 /usr/bin/dockerd -H fd:// root 3819 0.1 0.6 291624 14028 ? Ssl 11:31 0:01 \_ docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc root 4241 0.0 0.3 143872 6652 ? Sl 11:49 0:00 \_ docker-containerd-shim 1d3a6c65ac59e61c165d1f0119915a43e4d0387fd8432723f16b1ef2aa966522 /var/run/docker/libcontainerd/1d3a6c65ac59e61c165d1f0119915a43e4d0387fd8432723f16b1ef2aa966522 docker-runc root 4277 0.0 0.2 31872 5280 ? Ss 11:49 0:00 \_ nginx: master process nginx -g daemon off; syslog 4304 0.0 0.1 32260 2904 ? S 11:49 0:00 \_ nginx: worker process
容器的文件系统
容器文件系统的存储位置取决于您正在使用的存储驱动程序。 在你的情况下,图像层和(可写)容器层保存在/var/lib/docker/aufs
。 但是,这些文件不应该直接混淆。 您可以使用
-
docker cp
将文件复制到容器(甚至退出的容器) -
docker export
到容器的文件系统导出到一个tar档案 -
docker commit
一个容器的图像