Docker 教程

您所在的位置:网站首页 docker镜像地址哪个最好 Docker 教程

Docker 教程

2024-07-17 03:32:22| 来源: 网络整理| 查看: 265

Docker 已经被广泛用在生产环境中运行和扩展应用程序。此外,它还支持通过一条命令快速启动应用。

许多公司投入越来越多的精力来优化本地和远程 Docker 容器中的开发流程,由此也带来了诸多好处。

执行以下命令可以查看 Docker 的配置信息:

$ docker info ... Storage Driver: overlay2 Docker Root Dir: /var/lib/docker ...

输出的内容包含了存储驱动和 docker 根目录的信息。

Docker 镜像和容器的存储路径

Docker 容器由网络文件、卷和镜像组成。Docker 文件的存储路径取决于你的操作系统。常用操作系统中的路径如下:

Ubuntu: /var/lib/docker/ Fedora: /var/lib/docker/ Debian: /var/lib/docker/ Windows: C:\ProgramData\DockerDesktop MacOS: ~/Library/Containers/com.docker.docker/Data/vms/0/~

在 macOS 和 Windows 系统中,Docker 在一个虚拟机中运行 Linux 容器。关于这两种情况,你需要了解一些额外信息。

Mac 系统中的 Docker

Docker 在 Mac 系统中并不是原生兼容的,所以需要使用 Hyperkit 来运行虚拟机。虚拟机数据存储在:

/Library/Containers/com.docker.docker/Data/vms/0

在虚拟机内部,Docker 的路径是默认的 /var/lib/docker。

在虚拟机中创建一个 shell 窗口来查看 Docker 根目录:

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

可以按下 Ctrl+a,k,y 组合键来结束会话。

Windows 系统中的 Docker

Windows 系统中,Docker 比较复杂,因为有类似于 Linux 容器的原生 Windows 容器,也有运行在基于 Hyper-V 的最小虚拟机中的 Linux 容器。

配置信息和运行 linux 镜像的虚拟机存储在默认的 Docker 根目录。

C:\ProgramData\DockerDesktop

查看常规镜像的信息,会得到 linux 系统中的路径,如:

$ docker inspect nginx ... "UpperDir": "/var/lib/docker/overlay2/585...9eb/diff" ...

连接镜像:

docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i sh

现在,可以进入指定路径:

$ cd /var/lib/docker/overlay2/585...9eb/ $ ls -lah drwx------ 4 root root 4.0K Feb 6 06:56 . drwx------ 13 root root 4.0K Feb 6 09:17 .. drwxr-xr-x 3 root root 4.0K Feb 6 06:56 diff -rw-r--r-- 1 root root 26 Feb 6 06:56 link -rw-r--r-- 1 root root 57 Feb 6 06:56 lower drwx------ 2 root root 4.0K Feb 6 06:56 work Docker 根目录的内部结构

/var/lib/docker 目录中保存着各种信息,例如:容器数据、卷、构建文件、网络文件和集群数据。

$ ls -la /var/lib/docker total 152 drwx--x--x 15 root root 4096 Feb 1 13:09 . drwxr-xr-x 13 root root 4096 Aug 1 2019 .. drwx------ 2 root root 4096 May 20 2019 builder drwx------ 4 root root 4096 May 20 2019 buildkit drwx------ 3 root root 4096 May 20 2019 containerd drwx------ 2 root root 12288 Feb 3 19:35 containers drwx------ 3 root root 4096 May 20 2019 image drwxr-x--- 3 root root 4096 May 20 2019 network drwx------ 6 root root 77824 Feb 3 19:37 overlay2 drwx------ 4 root root 4096 May 20 2019 plugins drwx------ 2 root root 4096 Feb 1 13:09 runtimes drwx------ 2 root root 4096 May 20 2019 swarm drwx------ 2 root root 4096 Feb 3 19:37 tmp drwx------ 2 root root 4096 May 20 2019 trust drwx------ 15 root root 12288 Feb 3 19:35 volumes Docker 镜像

最大的文件通常是镜像。如果使用默认的 overlay2 存储驱动,Docker 镜像会保存在 /var/lib/docker/overlay2 目录。

通过一个示例来查看它的内容:

$ docker image pull nginx $ docker image inspect nginx [ { "Id": "sha256:207...6e1", "RepoTags": [ "nginx:latest" ], "RepoDigests": [ "nginx@sha256:ad5...c6f" ], "Parent": "", ... "Architecture": "amd64", "Os": "linux", "Size": 126698063, "VirtualSize": 126698063, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/585...9eb/diff: /var/lib/docker/overlay2/585...9eb/diff", "MergedDir": "/var/lib/docker/overlay2/585...9eb/merged", "UpperDir": "/var/lib/docker/overlay2/585...9eb/diff", "WorkDir": "/var/lib/docker/overlay2/585...9eb/work" }, ...

LowerDir 包含镜像的只读层,表示变更的读写层包含在 UpperDir 中。示例中,NGINX 镜像的 UpperDir 文件夹包含以下文件:

$ ls -la /var/lib/docker/overlay2/585...9eb/diff total 8 drwxr-xr-x 2 root root 4096 Feb 2 08:06 . drwxr-xr-x 3 root root 4096 Feb 2 08:06 .. lrwxrwxrwx 1 root root 11 Feb 2 08:06 access.log -> /dev/stdout lrwxrwxrwx 1 root root 11 Feb 2 08:06 error.log -> /dev/stderr

MergedDir 表示 UpperDir 和 LowerDir 合并的结果,Docker 用它来运行容器。WorkDir 是 overlay2 的内部目录,应该是空的。

Docker 卷(Volumes)

可以利用卷来持久化容器内的数据,容器和宿主机之间、容器和容器之间也可以通过共享卷来共享数据。使用 -v 选项可以让容器以挂载卷的方式启动:

$ docker run --name nginx_container -v /var/log nginx

查看挂载的卷的位置:

$ docker inspect nginx_container ... "Mounts": [ { "Type": "volume", "Name": "1e4...d9c", "Source": "/var/lib/docker/volumes/1e4...d9c/_data", "Destination": "/var/log", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ], ...

相应目录中包含来自 NGINX 容器 /var/log 目录中的文件。

$ ls -lah /var/lib/docker/volumes/1e4...d9c/_data total 88 drwxr-xr-x 4 root root 4.0K Feb 3 21:02 . drwxr-xr-x 3 root root 4.0K Feb 3 21:02 .. drwxr-xr-x 2 root root 4.0K Feb 3 21:02 apt -rw-rw---- 1 root 43 0 Jan 30 00:00 btmp -rw-r--r-- 1 root root 34.7K Feb 2 08:06 dpkg.log -rw-r--r-- 1 root root 3.2K Feb 2 08:06 faillog -rw-rw-r-- 1 root 43 29.1K Feb 2 08:06 lastlog drwxr-xr-x 2 root root 4.0K Feb 3 21:02 nginx -rw-rw-r-- 1 root 43 0 Jan 30 00:00 w 清理 Docker 使用的空间

建议使用 Docker 命令来清理不再使用的容器。可以使用以下命令清理容器、网络文件、镜像和构建缓存:

$ docker system prune -a

此外,也可以清除不再使用的卷:

$ docker volumes prune 总结

Docker 是很多人开发环境和工具集的一部分,有时候,Docker 能够像魔法一样巧妙地解决许多问题,而用户完全不需要关心内部细节。不过,Docker 也是一个常规的工具,它将庞大的文件保存在用户可以打开和编辑的目录中。

有时候,它可能很快就把磁盘占满了,所以要经常检查它的根目录(的磁盘占用情况),但是不建议手动删除或编辑 Docker 文件,最好使用 prune 命令来释放磁盘空间。

希望你喜欢这篇文章,欢迎关注我的 Twitter 以示鼓励。

我是革命性的旅游平台 Explore The World 的联合创始人,我们是位于德国 Dresden 的一家初创公司,初期目标市场是德国。如果有任何反馈或疑问,欢迎与我联系。

Happy Docker exploring :)

参考资料 Docker 存储驱动文档 https://docs.docker.com/storage/storagedriver/ Overlay 文件系统文档 https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt

原文:Where are Docker Images Stored? Docker Container Paths Explained,作者:Sebastian Barthel



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭